2
我的模板类A包含调用模板类的静态函数的函数:如何为指针类创建一个静态模板函数?
template <typename T>
void A<T>::fun() {
T obj = T::create();
....
}
如果我想这个代码工作时,T = B *我应该如何修改呢? 我知道我不能做(* T):: create(),但从概念上讲,这就是我想要的。
我的模板类A包含调用模板类的静态函数的函数:如何为指针类创建一个静态模板函数?
template <typename T>
void A<T>::fun() {
T obj = T::create();
....
}
如果我想这个代码工作时,T = B *我应该如何修改呢? 我知道我不能做(* T):: create(),但从概念上讲,这就是我想要的。
您可以使用std::remove_pointer
型特点:
#include <type_traits>
template <typename T>
void A<T>::fun() {
T obj = std::remove_pointer<T>::type::create();
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// ...
}
如果双方std::remove_pointer<U*>::type
和std::remove_pointer<U>::type
给U
。
澄清:当'T'是'U *'并且'T'不是指针类型时,您希望代码工作* both * –