有人可以向我解释为什么我不能做以下事情:
T
这会抛出C464'int&':不能使用'new'来分配引用。我该怎么做这样的事情?我需要的是我发送的变量的derefferenced基类型。
这虽然有效
IFoo
我理解上面的代码是如何工作的,但我将如何使用new执行类似的操作?
答案 0 :(得分:16)
取消引用运算符*
返回引用,您无法使用new
分配该引用。相反,您可以在<type_traits>
std::remove_pointer
int* b = new int(5);
int* c = new std::remove_pointer<decltype(b)>::type(5);
std::cout << *c << std::endl;