Я только что обнаружил, что когда дело доходит до шаблонов, этот код компилируется в g ++ 3.4.2 и работает, если только m () не вызывается:
template <typename T>
class C
{
T e;
public:
C(): e(0) {};
void m()
{
e = 0;
};
};
Теперь можно создавать и использовать экземпляр
C<const int> c;
Пока не вызывается c.m()
, нет ошибок компиляции, но допустимо ли это?