Basically, in a sizeof or decltype expression you can call functions that aren’t implemented anywhere (they need to be declared, not implemented).
E.g.
class Silly { private: Silly( Silly const& ) = delete; };
auto foo() -> Silly&&;
auto main() -> int
{
sizeof( foo() );
}
The linker should not complain about that.