std常用的模板元编程
std::conditional_t
std::conditional_t 是 C++ 标准库中的一个模板类,用于实现条件编译。它使用一个布尔类型的常量表达式作为条件,如果条件为 true,则该模板类指定为第二个参数;否则指定为第三个参数。这个模板类可以方便地在编译期间进行类型选择,并返回相应的类型。
#include <iostream>
#include <type_traits>
template <typename T, bool UseFloat>
struct MyType
{
using type = std::conditional_t<UseFloat, float, T>;
};
int main()
{
MyType<int, false>::type a = 42;
MyType<long, true>::type b = 3.14f;
std::cout << "a = " << a << ", b = " << b << std<

本文介绍了C++标准库中的三个工具。std::conditional_t用于实现条件编译,可在编译期间进行类型选择;std::is_same是类型特性类模板,能判断两个类型是否相同,还有辅助函数版本std::is_same_v;std::enable_if是模板元编程工具,可根据条件选择函数模板的实现。
最低0.47元/天 解锁文章
503

被折叠的 条评论
为什么被折叠?



