【发布时间】:2018-01-24 06:50:51
【问题描述】:
我正在尝试使用需要由给定模板值确定大小的静态数组。然而,大小在程序运行时将保持不变——这就是我决定不使用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 是 const 静态值。 IDE 给了我一个提示
数组大小表达式必须是整数类型,而不是 int(*)()
我想知道我是否可以在不使用std::vector 的情况下使其以这种方式工作。欢迎和赞赏任何建议。
【问题讨论】:
-
错误消息告诉您问题所在 - 您的数组大小不是整数,它是一个不带参数并返回
int的 lambda。