1

質問が言うように、型にconst修飾子があるかどうかを確認できますtypetraitsか?

4

2 に答える 2

8

C++11 では、 を使用できますstd::is_const<type_traits>ヘッダーを含めるだけです。

C++03 では、これを自分で簡単に実装できます。

template<typename T> 
struct is_const 
{
    const static bool value = false;
};

template<typename T> 
struct is_const<const T>
{
    const static bool value = true;
};
于 2012-09-16T20:31:54.897 に答える
4

c++11 をサポートしている場合は、std::is_constを使用できます。それ以外の場合は、 boost::is_constを使用してください。

struct Foo {};

#include <iostream>
#include <type_traits>
....
std::cout << std::is_const<Foo>::value << '\n';  // false
std::cout << std::is_const<const Foo>::value  << '\n'; // true
于 2012-09-16T20:29:50.210 に答える