当前位置:  开发笔记 > 编程语言 > 正文

为什么type_traits是类而不是函数

如何解决《为什么type_traits是类而不是函数》经验,为你挑选了1个好方法。

type_traits最近一直在研究并且想知道为什么它们被实现,class templates而实现它们functions可能更明显并且具有更简单的语法.

我想说的是这种语法: -

int x = 5;
std::cout << is_same(x);

比实际的更有说服力和清洁,即: -

int x = 5;
std::cout << is_same ::value;

这只是好奇心的一个例子.我只想知道标准化委员会的理念,而class不是function方法.



1> Revolver_Oce..:

    多才多艺.大多数类型特征都有X::value布尔常量和X::type类型别名,可用于标记分派.

    能够部分专业化.您不能对函数进行部分特化,只能进行完全特化和重载.在存在特化和重载的情况下,很容易调用错误的函数.

    编译时评估.大多数类型特征是在以前的千年中发明的,当时constexpr功能不可用.即使在constexpr函数中,也不能将值作为参数传递,因为它可能会阻止编译时评估.

    你总是有类型,但有时你只有它.创建一个不能一直工作的函数会适得其反,所以无论如何我们都无法依赖模板参数推导.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有