【发布时间】:2012-10-26 07:28:15
【问题描述】:
我很感兴趣这东西在理论上是如何工作的。 示例:
#include <boost/type_traits/is_enum.hpp>
#include <iostream>
enum foo
{
AAA,
BBB
};
typedef foo bar;
struct sfoo {
enum bar {
CCC
};
};
int main()
{
std::cout << boost::is_enum<foo>::value << "\n"; // 1
std::cout << boost::is_enum<bar>::value << "\n"; // 1
std::cout << boost::is_enum<sfoo>::value << "\n"; // 0
std::cout << boost::is_enum<int>::value << "\n"; // 0
std::cout << boost::is_enum<sfoo::bar>::value << "\n"; // 1
return 0;
}
我尝试探索源代码,但太难了(宏 + 模板代码导航失败)。有人可以进行理论探索它是如何工作的吗?我不知道如何实现它。
【问题讨论】:
-
谢谢,看来我在创建问题之前使用了错误的搜索请求。
标签: c++ boost typetraits