Posso utilizzare doppi punti in #define
? Mi piacerebbe salvare un po 'di scrittura nei file di implementazione, ad es. così:Usa doppio punto (: :) in #define
// foo.h
#define template template <class T>
#define foo:: foo<T>::
template class foo {
T& baz();
};
#include "foo.tpp"
#undef template
#undef foo::
// foo.tpp
template T& foo::baz() {
// do stuff.
}
Ma ho errori di sintassi che non capisco davvero. (Vedere un esempio su codepad):
Line 11: error: missing whitespace after the macro name
Line 10: error: extra tokens at end of #undef directive
Line 4: error: 'foo' is not a template
compilation terminated due to -Wfatal-errors.
Domanda ben fatta, ma vorrei pubblicare anche gli errori di sintassi –
Questa mi sembra una pessima idea, anche se ha funzionato (che grazie a Dio non lo fa). Nessuno sarebbe in grado di capire o mantenere il tuo codice. I tuoi successori potrebbero attaccare spilli a tua somiglianza. – TonyK