Можем ли мы сделать что-то вроде этого:
#include <iostream>
class Foo
{
public:
Foo() { std::cout << sizeof(*this) << '\n'; }
};
В стандарте C я вижу следующее:
ISO/IEC 9899: 2011
6.7.2.1 Спецификации структуры и объединения
8... Тип является неполным, пока сразу после {} завершает список и завершается после этого.
Но в С++ Standard я не могу найти аналог.
Оператор sizeof не применяется к выражению с неполным типом, поэтому мы можем написать такой код или нет?