Я использую карту как ассоциативный массив идентификаторов -> значение, где значение представляет собой структуру, определяющую объект:
#include
Приведенный выше код компилируется с g ++, но со следующим предупреждением:
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
Я читал здесь различные вопросы / ответы об инициализации структуры, но я все еще немного запутался. У меня есть ряд связанных вопросов:
Я мог бы добавить параметр компилятора -std = c ++ 0x и завершить работу с предупреждением, но все равно не буду в курсе основной проблемы. Разве все не сломается, если я добавлю метод в структуру категории?
Как лучше всего инициализировать эту структуру (категорию) POD более совместимым с C ++ 03 способом?
В принципе, я не и все же уверен в последствиях того, что поступает так, а не иначе. Такой тип ассоциативного массива (где ключ - это идентификатор объекта) легко использовать с PHP, и я все еще изучаю правильный способ сделать это на C ++. Есть ли что-нибудь, на что мне следует обратить внимание в контексте приведенного выше кода?
Edit
Следующие вопросы связаны, но я не понял ответов, когда впервые прочитал их:
C ++ инициализировать анонимную структуру
c ++ Инициализация структуры с массивом в качестве члена
Инициализация структур в C ++