gpt4 book ai didi

c++ - 模板区分有符号和无符号

转载 作者:搜寻专家 更新时间:2023-10-31 00:50:17 32 4
gpt4 key购买 nike

如果已经编写了一个模板函数并且代码只有在模板类型未被标记的情况下才能正常工作。现在我正在寻找一种方法来防止函数在没有 C++11 的情况下使用带符号的类型进行编译。

template<typename T>
T foo() {
T a=0;
return a<<1;
}

最佳答案

std::is_signed仅在 C++11 之后可用,但是在您可以使用 std::numeric_limits<T>::is_signed 之前.

作为static_assert也是 C++11,你必须使用其他东西,例如来自 here 的技巧:

typedef int static_assert_something[something ? 1 : -1];

关于c++ - 模板区分有符号和无符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57970513/

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