こんにちは私はCppreference.comでこのような多くの例を見てきました:
std::is_class<T>
std::is_integral
等々。たとえば、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を使用し、それ以外の場合は「低速」ループを使用する」とどのように言いますか?