我想做这样的事情:
SomeType *y;
/* ... snip ... */
auto x = new decltype(y); // Create a new pointer "x" to a SomeType object.
但decltype(y)
为SomeType*
而decltype(*y)
为SomeType&
。有没有办法让SomeType
明白y
?
答案 0 :(得分:9)
由于decltype(*y)
是参考,您可以使用std::remove_reference
:
new std::remove_reference<decltype(*y)>::type;