如何将原子变量初始化为struct,boost :: atomic MAX
我试过了:
#include <boost/atomic.hpp>
struct mem {
// error: conversion from ‘int’ to non-scalar type ‘boost::atomics::atomic<int>’ requested
boost::atomic<int> MAX = 100;
// error: expected identifier before numeric constant
boost::atomic<int> MAX(100);
// error: ‘boost::atomics::atomic<T>::atomic(const boost::atomics::atomic<T>&) [with T = int]’ is private
boost::atomic<int> MAX = (boost::atomic<int>) 100;
// warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
boost::atomic<int> MAX{100};
}
注意:我不能使用c ++ 11或c ++ 14。
答案 0 :(得分:0)
此表格应该有效
boost::atomic<int> MAX(100);
如果它没有,那可能意味着MAX
令牌被预处理器替换。尝试消除标题,使用不同的变量名等。
另见
答案 1 :(得分:0)
如果需要在C ++ 03中初始化struct / class成员,那么你必须编写一个构造函数。
.ie-
PS:sehe是正确的,警告你struct mem {
boost::atomic<int> MAX;
mem() : MAX(100)
{
}
};
在某些系统上可能是一个宏,你应该注意大写名称。