LINUX.ORG.RU

Инициализация в c++0x

 , , ,


1

3

Подскажите, можно ли статически инициализировать вот такое std::map<std::string, std::vector<std::string>[2]>?

Пытаюсь сделать так (хотя бы просто std::map<std::string, std::vector<std::string>>):

std::map<std::string, std::vector<std::string>> map = {
    ("entity", {
         "attrib"
    })
};

Не выходит.

★★

map<string, vector<string>[2]> m = { { "key", {{ "a" }, { "b" }} } };
wota ★★ ()
std::map<std::string, std::vector<std::string> > map =
{
	{"entity", {"attrib"}}
};

x4DA ★★★★★ ()
Последнее исправление: x4DA (всего исправлений: 1)

Руки бы поотрывать

std::map<std::string, std::vector<std::string>[2]>

struct Data {
   vector<string> a;
   vector<string> b;
};
map<string, Data>
schizoid ★★★ ()
Ответ на: комментарий от Boy_from_Jungle

gcc с соответствующим флагом норм собирает.

Y ★★ ()
Ответ на: комментарий от Y

Должен ругаться, что флаг устаревший. Для острых ощущений врубите флаг c++1y

Gorthauer ★★★★★ ()
Ответ на: комментарий от wota

шланг это не осилил, меня это удивило, а вот гцц смог.
Хотя писать так не нужно конечно

Boy_from_Jungle ★★★★ ()
Ответ на: комментарий от Y

потому что лучше завернуть во что-то, удобнее так и читается лучше.

Boy_from_Jungle ★★★★ ()
Ответ на: комментарий от Uter

welcome to c++ один раз тайпдефится, потом используется или typedef или auto.

x0r ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.