预处理器宏来制作一组数字

时间:2015-12-18 20:24:39

标签: c++11 macros preprocessor

我想创建一个宏,它将创建一个指向无序集合的共享指针。

#include <memory>
#include <unordered_set>

#define MAKE_SET (x) make_shared<type_raw_set>(type_raw_set{x});

using std::make_shared;
using std::shared_ptr;
using std::unordered_set;

typedef const unordered_set<unsigned> type_raw_set;
typedef shared_ptr<type_raw_set> type_set;

type_set Snake = MAKE_SET(1,5,9,12,14,16,19,23,27,30,32,34) // does not compile

如何使这项工作?

1 个答案:

答案 0 :(得分:1)

将可变数量的参数传递给宏需要使用可变参数宏:

+ activity
  + -K5p_pBXog4kb0SVLXxj
    text:'something',
    when:111
    + thread
      + -K5paF53zm3cuudP9FUQ 
        id:8,
        text:'something else'