我想使用静态数组,其大小需要根据给定的模板值来确定。不过,程序运行时间的大小将保持不变 - 这就是为什么我决定不使用std::vector
。由模板值确定的静态数组大小
template<uint32_t BAR_WIDTH>
class Bar
{
//do_stuff...
Foo mapper[ [&]()->int{ uint32_t tmp = BAR_WIDTH/Foo:FOO_EDGE; return (BAR_WIDTH % 10 == 0) ? tmp : tmp + 1; }; ];
};
FOO_EGDE
是常量静态值。 IDE给我一个暗示,
数组大小表达式必须具有整数类型,而不是INT(*)()
我不知道如果我可以把它以这种方式工作,而无需使用std::vector
。任何建议,欢迎和赞赏。
错误消息告诉您的问题 - 你的阵列size不是一个整数,它是一个不带参数并返回int的lambda。 – Chowlett