您好,我在Cppreference.com上看到了许多这样的示例:
std::is_class<T>
std::is_integral
等等。我知道我是否例如运行代码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';
}
输出:
true
true
false
false
我已经使用这个找遍了一个真实的例子(
is_class
,is_integral
,is_arithmetic
,...),但所有的教程只显示无望例如:只true
或false
。有人能帮我举一个使用此模板的有用示例吗?
std::copy
。如果要输入的类型std::copy
是“简单”(如int
或的数组)char
怎么办?你会用memcpy
吧?因此,您怎么说“如果类型简单,请使用memcpy,否则请使用“慢”循环”?