我想做这样的事情:
SomeType *y;
/* ... snip ... */
auto x = new decltype(y); // Create a new pointer "x" to a SomeType object.
Run Code Online (Sandbox Code Playgroud)
但是,decltype(y)是SomeType*和decltype(*y)是SomeType&.有没有办法让自己SomeType明白y?
既然decltype(*y)是参考,你可以使用std::remove_reference:
new std::remove_reference<decltype(*y)>::type;
Run Code Online (Sandbox Code Playgroud)