C ++编译时类型比较

杜宁

考虑功能foo

template <typename T>
void foo() {
    do_something();
    if (T == int) {
        do_somehting_else();
    }
}

换句话说,我想要它do_something(),然后,如果类型是intdo_something_else()

当然if (T == int) {不会编译。还有:在C ++中,有什么方法可以在编译时比较类型吗?

丹尼尔·弗雷(Daniel Frey)

您可以使用

#include <type_traits>

// ...

template <typename T>
void foo() {
    do_something();
    if (std::is_same<T,int>::value) {
        do_somehting_else();
    }
}

您可以在此处了解有关类型特征的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++在编译时比较模板类型

来自分类Dev

C ++中的编译时类型替换

来自分类Dev

C#中的运行时类型与编译时类型

来自分类Dev

C#中的运行时类型与编译时类型

来自分类Dev

C ++是否具有标准的编译时类型容器?

来自分类Dev

在编译时生成类型列表-没有C ++ 11

来自分类Dev

C ++模板化类型检查编译时线程安全吗?

来自分类Dev

C# 循环遍历编译时已知的泛型类型

来自分类Dev

C ++类型比较

来自分类Dev

C ++编译时错误

来自分类Dev

比较C ++中的类类型

来自分类Dev

比较参考类型(C#)

来自分类Dev

比较C ++中的类类型

来自分类Dev

为什么C ++不能更轻松地对类型进行编译时查询?

来自分类Dev

C ++ sscanf在编译时抛出“无适当的转换”错误且类型不相关

来自分类Dev

使用另一个类的类型定义的成员时发生C ++编译错误

来自分类Dev

C ++ 17:在编译时将类型映射到整数值

来自分类Dev

使用C ++ 17编译时无法从基类访问成员类型

来自分类Dev

是否有正确的别名类型取决于编译时传递的模板值参数(C ++)

来自分类Dev

在编译时为C ++字符串文字选择默认类型和编码

来自分类Dev

为什么C ++不能更轻松地对类型进行编译时查询?

来自分类Dev

使用另一个类的类型定义的成员时发生C ++编译错误

来自分类Dev

C ++,编译时错误“与'operator []'不匹配(操作数类型为'someClass *'和'someClass')”

来自分类Dev

比较时,没有键字段的VB.NET匿名类型与C#匿名类型有何不同?

来自分类Dev

编译时零C并集

来自分类Dev

在C ++编译时写入文件?

来自分类Dev

编译C库时的警告

来自分类Dev

编译时零C并集

来自分类Dev

比较不同类型的C ++ for循环

Related 相关文章

热门标签

归档