Boost预处理器-将Boost _PP_ENUM_PARAMS传递一个静态常量int
Boost Preprocessor - Pass BOOST_PP_ENUM_PARAMS a static const int?
我想要这样的东西:
class MyClass
{
public:
static const int n = some_traits_class<SomeClass>::value;
template <BOOST_PP_ENUM_PARAMS(MyClass::n, typename P)>
void operator()( BOOST_PP_ENUM_BINARY_PARAMS(MyClass::n, const P, & p) )
{
....
}
}
编译器似乎不喜欢这样——是否有某种修复方法可以到达我想要的位置?
否,BOOST_PP_ENUM_PARAMS
的第一个参数必须是整数:实际的整数标记或扩展为1的宏的名称。
宏替换早在编译器开始解析代码和计算整数常量表达式之前就发生了(在预处理过程中计算的唯一常量表达式是出现在#if
或#elif
指令中的常量表达式,它们有一组有限的操作可供使用)。
相关文章:
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 如果C++对象的类在另一个boost模块中声明,如何使用boost将指向该对象的指针返回到python
- 创建一个函数的 Python 绑定,返回指向带有 boost 的向量的指针
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- 我在使用 boost::serialization 时遇到了一个问题,我的代码在 Linux 中运行良好,但在 Wind
- 我正在将一个 std::string 传递给一个 boost 函数,该函数对该类型进行常量引用,但该值发生了变化
- 仅在 boost::hash_combine 中运行一个程序期间保证确定性
- 我正在尝试创建一个C++映射,该映射在boost内存映射文件中具有向量值
- 在boost::hana中给定一个键元组,如何从映射中获取值元组
- 我已经编写了C++代码将 boost::optional 视为一个范围,但它无法编译
- 生成一个使用 boost 的 .cu 文件
- boost::文件系统::create_directory抛出了一个提升::文件系统::filesystem_error
- 如何创建一个版本的 boost::range::transform,该版本具有用于捕获上下文的额外参数
- 制作一个带有 boost::asio::d eadline_timer 的计时器
- boost :: filesystem :: verver()无法访问文件,因为另一个过程正在使用该文件
- Boost::p roperty_tree:在XML解析器中使用std::vector<>在一个键中存储多个值
- BASIC_SOCKETD_ACCEPTOR接口在Boost 1.66中更改.这是一个错误
- boost last_write_time更改最后一个写入值
- 如何为这个Boost.BUILD Jamfile编写一个Bazel BUILD文件
- boost::instrusive::list 带有自动取消链接钩子:我可以使用列表中的值来确定列表是否只有一个元素