This is a very simple question. Consider the following code:
#include #include typedef std::unique_ptr UniqueVo
MSVC is right while GCC is wrong:
Standard(3.9/5):
Incompletely-defined object types and the void types are incomplete types
Standard(20.7.1.1.2/4):
If T is an incomplete type, the program is ill-formed