Я пытаюсь статически инициализировать массив constexpr std :: массив объектов, содержащий указатели на функции со следующим кодом:
#include <array>
using TVoidVoid = void(*)(void);
class State{
public:
constexpr State(TVoidVoid function) : function_{function}{}
private:
TVoidVoid function_;
};
void OnEvent1(){}
void OnEvent2(){}
constexpr std::array<State, 10> states = {{OnEvent1}, {OnEvent2}};
int main(){}
Я компилирую с:
g++ -Wall -Wextra -Wshadow -Weffc++ -Wstrict-aliasing -ansi -pedantic -Werror -std=c++14 main.cpp
У меня естьпроблема понимания ошибки компиляции, которую я получаю:
main.cpp:14:69: error: too many initializers for ‘const std::array<State, 10>’
constexpr std::array<State, 10> states = {{OnEvent1}, {OnEvent2}}
Компилятор g ++ (Ubuntu 7.3.0-27ubuntu1 ~ 18.04) 7.3.0.
В чем здесь может быть проблема?Большое спасибо заранее!