gpt4 book ai didi

C++ STL type_traits 问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:56 25 4
gpt4 key购买 nike

我在看最新的C9 lecture并注意到一些有趣的事情..

在他对 type_traits 的介绍中,Stephan 使用了以下(如他所说,人为的)示例:

template <code><typename T></code> void foo(T t, true_type)
{
std::cout << t << " is integral";
}
template <code><typename T></code> void foo(T t, false_type)
{
std::cout << t << " is not integral";
}<p></p>

<p>template <code><typename T></code> void bar(T t)
{
foo(t, typename <code>is_integral<T>::type()</code>);
}
</p>

这似乎比:

复杂得多

template <code><typename T></code> void foo(T t)
{
if(<code>std::is_integral<T>::value</code>)
std::cout << "integral";
else
std::cout << "not integral";
}

后一种做法有问题吗?他的方法更好吗?为什么?

谢谢。

最佳答案

基本上,第一个选项在编译时使用有关类型“完整性”的知识,而第二个选项 - 将此知识移至运行时。

这意味着我们可以使用不可为非整数类型编译的整数类型代码。

关于C++ STL type_traits 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com