std常用的模板元编程

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

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<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值