预处理器宏来制作一组数字
preprocessor macro to make set of numbers
我想创建一个宏来创建指向无序集的共享指针。
#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
我该怎么做?
将可变数量的参数传递给宏需要使用可变参数宏:
#define MAKE_SET(...) \
make_shared<type_raw_set>(type_raw_set{__VA_ARGS__});
我想创建一个宏来创建指向无序集的共享指针。
#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
我该怎么做?
将可变数量的参数传递给宏需要使用可变参数宏:
#define MAKE_SET(...) \
make_shared<type_raw_set>(type_raw_set{__VA_ARGS__});