Я пытаюсь создать массив функторов во время компиляции, например, так: (полный файл):неисправимая ошибка блока обзорного массив функторов C++
#include <functional>
using namespace std;
function< float(float tElevation, float pAzimuth)> colorFunctions[] = {
[](float tElevation, float pAzimuth) -> float {
return 2.0f ;
},
} ;
int main()
{
}
Это работает отлично. Но как только вы пытаетесь создать локальный внутри блока функтора, например:
function< float(float tElevation, float pAzimuth)> colorFunctions[] = {
[](float tElevation, float pAzimuth) -> float {
float v = 2.0f ;
return v ;
},
} ;
Вы получаете ошибки 1 ошибка C1506: неисправимая ошибка кадра обзорное
Как я могу объявить местных жителей внутри этих блоков? Кажется, это не работает.
Я убил параметры из-за их быть неиспользованными и GCC не дает никаких предупреждений или что-нибудь. Даже с единственной ошибкой для неиспользуемых параметров. – chris
Действительно ли это запятая в конце выражения лямбда? – coelhudo
@coelhudo, это список инициализаторов; [это действительно] (http://stackoverflow.com/questions/7043372/int-a-1-2-weird-comma-allowed-any-particular-reason). Это облегчает добавление элементов позже. – chris