просто кто-то выше писал, что sizeof неполного типа 0, и я сам так думал, а на самом деле-то нет
sizeof вообще не может быть 0. Это можно сказать фундаментальное правило С++, которое следует из того, что два разных объекта не могут лежать по одному адресу