2015-07-04 2 views
7

Я хочу сделать что-то вроде этого:найти тип указателя

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?

ответ

9

Поскольку decltype(*y) является ссылкой, вы можете использовать std::remove_reference:

new std::remove_reference<decltype(*y)>::type; 
+0

Я в конечном итоге происходит с 'новой станд :: remove_pointer :: типа,' но это тоже отлично работает. – Jake

Смежные вопросы