Aquí está el códigocompilador interno Error: fallo de segmentación con g ++ 4.3.5
//fail_.cpp
template< unsigned char X, class L>
class A {
public:
typedef void (A::*fptr)();
class B {
public: B(typename A< X, L> ::fptr);
};
};
template < unsigned char X, typename L >
A<X,L>::B::B (fptr) { }
g++ -c fail_.cpp
da
fail_.cpp:11: internal compiler error: Segmentation fault
Please submit a full bug report, with preprocessed source if appropriate.
See < file:///usr/share/doc/gcc-4.3/README.Bugs > for instructions.
Parece que un error para mí en g ++ 4.3.5, g ++ 4.4 y superior no dan ninguna segfault.
¿Qué piensan? ¿Hay algo mal con el código en sí?
Un error de compilador interno siempre es un error. Si hay algo mal con el código, el compilador debería producir un mensaje de error real, no bloqueado. –
me parece bien. Probablemente habría intentado simplificar la clase interna a 'clase B {public: B (fptr); }; '. El typedef debería ser visible allí. –
Curiosamente, si escribo 'typename A < X, L> :: fptr' en la * definición *, compila bien: http://ideone.com/0OOpn – Nawaz