如何在 C++ 中使用模板在值和指针上获取 Value_Type?
How Can I Get Value_Type on both value and pointer by using template in c++?
template<class T>
struct TypeInfo {
using value_type = is_pointer<T>::value ? T * : T;
};
这段代码只是伪代码。我想为每个指针和值找到值类型。
我会像 sizeof(TypeInfo<something>::value_type )
这样使用它。你能帮帮我吗?
你可以这样做:
template<class T>
struct TypeInfo {
using value_type = std::remove_pointer_t<T>;
};
template<class T>
auto consteval _GetValueType()
{
if constexpr (is_pointer<T>()) {
return _GetValueType<remove_pointer_t<T>>();
}
else {
return T();
}
}
template<class T>
struct GetValueType
{
using value_type = decltype(_GetValueType<T>());
};
这适用于任何 [(\*)*]类.
template<class T>
struct TypeInfo {
using value_type = is_pointer<T>::value ? T * : T;
};
这段代码只是伪代码。我想为每个指针和值找到值类型。
我会像 sizeof(TypeInfo<something>::value_type )
这样使用它。你能帮帮我吗?
你可以这样做:
template<class T>
struct TypeInfo {
using value_type = std::remove_pointer_t<T>;
};
template<class T>
auto consteval _GetValueType()
{
if constexpr (is_pointer<T>()) {
return _GetValueType<remove_pointer_t<T>>();
}
else {
return T();
}
}
template<class T>
struct GetValueType
{
using value_type = decltype(_GetValueType<T>());
};
这适用于任何 [(\*)*]类.