正如问题所说,我可以找出一个类型是否有const
修饰符 viatypetraits
吗?
问问题
89 次
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 回答