C++ 11提供了标准<type_traits>.
没有编译器挂钩,哪些是不可能实现的?
__is_builtin....您好,我在Cppreference.com上看到了许多这样的示例:
std::is_class<T>
std::is_integral
Run Code Online (Sandbox Code Playgroud)
等等。我知道我是否例如运行代码get true或false。但是,这有什么意义呢?例如知道对象是否为类类型?
#include <iostream>
#include <type_traits>
struct A {};
class B {};
enum class C {};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_class<A>::value << '\n';
std::cout << std::is_class<B>::value << '\n';
std::cout << std::is_class<C>::value << '\n';
std::cout << std::is_class<int>::value << '\n';
}
Run Code Online (Sandbox Code Playgroud)
输出:
true
true
false
false
Run Code Online (Sandbox Code Playgroud)
我已经使用这个找遍了一个真实的例子(is_class,is_integral,is_arithmetic,...),但所有的教程只显示无望例如:只true或false。
有人能帮我举一个使用此模板的有用示例吗?