From [5.3.3/1], I found that:
The sizeof operator shall not be applied to an expression that has function or incomplete type
Fro
As already highlighted in the docs here http://en.cppreference.com/w/cpp/language/sizeof
Notes
sizeof() cannot be used with function types, incomplete types, or bit-field glvalues.
Since void() is a function type, so its not a valid type of sizeof()
Note:
void() is a function that takes no arguments and returns nothing
Quoting a Example from Docs:
//<< "size of function: " << sizeof(void()) << '\n' // error
So Answers to your questions:
1)No it is not a legal Expression.
2)It will show as 1 , but will show a warning
3)same as 1).