is_integral和is_integer似乎以同样的方式回答了同样的事情.
从链接到相关文档页面,is_integral似乎缺少以下类型的特化
signed char
unsigned char
unsigned short
unsigned int
unsigned long
unsigned long long
Run Code Online (Sandbox Code Playgroud)
然而,一个已编译的示例(当然)也显示了它们在这些类型上的相同行为:
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
cout << is_integral<signed char >::value << endl;
cout << is_integral<unsigned char >::value << endl;
cout << is_integral<unsigned short >::value << endl;
cout << is_integral<unsigned int >::value << endl;
cout << is_integral<unsigned long >::value << endl;
cout << is_integral<unsigned long long>::value << endl;
return …Run Code Online (Sandbox Code Playgroud) 在一些std模板函数的描述中,我看到了类似的东西:
如果模板参数是整数类型,则行为是这样的.
否则,就是这样等等.
我怎么做类似的测试?也许dynamic_cast?
由于我写的功能仅供我个人使用,我可以依靠自己只提供正确的参数,但为什么错过学习的机会呢?:)