我有这样的结构:
struct E1
{
typedef boost::tuple<
boost::optional< N::type_A >, // N - namespace
boost::optional< N::type_B >,
...................
boost::optional< N::type_X > //arbitrary number of, maximal is 7
> data_type;
// for access by name
boost::optional<N::type_A> const& type_A() const { return boost::get<0>(data); }
boost::optional<N::type_B> const& type_B() const { return boost::get<1>(data); }
.....................................
boost::optional<N::type_X> const& type_X() const { return boost::get<2>(data); }
data_type data;
};
问:如何使用 BOOST 预处理器创建这种结构?对我来说,只有 type_A、type_B、...、type_X 类型的名称。
它需要我,因为我必须创建很多这样的结构,只更改 type_A、type_B、... 类型。
在一般情况下,我可以使用 boost 预处理器数组或集合吗?