我想使用靜態數組,其大小需要根據給定的模板值來確定。不過,程序運行時間的大小將保持不變 - 這就是爲什麼我決定不使用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