我想知道是否可以根据模板参数是否为指针来进行一些条件键入?
因此,例如,我希望下面的get方法返回T
本身,如果它是一个指针(即T *)。如果不是指针(即T),则为T*
。
template<typename T>
class MyContainer {
T get(); // If T is a pointer
T* get(); // If T is not a pointer
}
答案 0 :(得分:2)
仅是条件,如果它是指针,则不是:
#include <type_traits>
template<typename T>
class MyContainer {
std::conditional_t<std::is_pointer<T>::value, T, T*> get();
};