Существует ли
стандартная возможность определения переменной-объекта без ее одновременно сопутствующего объявления. Например, для MSVC легален следующий код:
SomeClass sc(2);
...
someFunc(sc);
if(!sc.isValid())
sc.SomeClass::SomeClass(7); // объявления нет, только определение
otherFunc(sc);
...
В частности, если в SomeClass запрещены копирующий конструктор и "=", то есть проблемы.