我有这堂课:
template <typename T, uint64_t N>
struct Probe {
static const uint64_t Counter = N;
typedef T Type;
};
我将其用作:
typedef Probe <int, 0> FirstIntProbe;
typedef Probe <int, 1> SecondIntProbe;
typedef Probe <float, 2> FloatProbe;
是否可以创建一个编译时间\宏方法,它允许我在不指定第二个参数的情况下实例化此类,例如:
typedef Probe <int, Something?> FirstIntProbe;
typedef Probe <int, Something?> SecondIntProbe;
typedef Probe <float, Something?> FloatProbe;
我认为这是不可能的,但是我又一次看到人们用 C++ 做我以前认为不可能的事情。
更新:
- 不需要加一,重要的是每个探针都有自己的编号。
- 不需要在不同的 .cpp 文件\翻译单元中具有唯一编号。