C ++是否支持编译时计数器?
出于内省的目的,有时我想自动为类型或类似的东西分配序列号。
不幸的是,模板元编程本质上是一种功能语言,因此缺乏实现这种计数器的全局变量或可修改状态。
或者是吗?
按请求的示例代码:
#include <iostream>int const a = counter_read;counter_inc;counter_inc;counter_inc;counter_inc;counter_inc;int const b = counter_read;int main() { std::cout << a << ' ' << b << '\n'; // print "0 5" counter_inc_t(); counter_inc_t(); counter_inc_t(); std::cout << counter_read << '\n'; // print "8" struct { counter_inc_t d1; char x[ counter_read ]; counter_inc_t d2; char y[ counter_read ]; } ls; std::cout << sizeof ls.x << ' ' << sizeof ls.y << '\n'; // print "9 10"}
浮云间
狐的传说
相关分类