g ++ sin libstdc ++: ¿se puede hacer? - un libstdc ++ muy configurable y liviano donde puedo sacar cosas fácilmente también haría el truco

Estoy intentando algo espeluznante aquí. Estoy tratando de escribir programas C ++, compilados con g ++ de GNU, pero sin depender de libstdc ++ :), pero parece que lo necesito incluso para las cosas más básicas.

A libstdc ++ con un conjunto de funciones configurables sería aceptable.

El comando que uso es

g++ -nodefaultlibs -fno-rtti -fno-exceptions -lc

Sin libstdc ++, obtengo:

undefined reference to `operator delete(void*)'  
undefined reference to `operator new(unsigned int)'  
undefined reference to `vtable for __cxxabiv1::__class_type_info'  
undefined reference to `vtable for __cxxabiv1::__si_class_type_info'  
undefined reference to `__cxa_pure_virtual'

Estos no están en libc, entonces, ¿hay un libstdc ++ realmente ligero que implemente solo estas cosas?

Mi código de prueba que quiero construir de esta manera actualmente se ve así:

#include <stdio.h>

template <class T>
class X
{
    public:
    T a;
};

class A1
{
    public:
        virtual void f() = 0;
        virtual ~A1() {}
};

class A2 : public A1
{
    public:
        virtual void f() {};
        virtual ~A2() {}
};

class Y
{
    public:
        ~Y() {}
};

int main()
{
    X<int> A;
    X<float> B;
    Y *C = new Y;

    A.a = 12;
    B.a = 2.3;

    printf("A: %d; B: %f\n", A.a, B.a);

    A2 *a2 = new A2;
    a2->f();

    return 0;
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta