Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > QMap<Key, T>


Автор: Vasya 7.11.2013, 11:43
Здравствуйте!

Мне нужно передать в функцию параметр типа const QMap<QString, QVariant> & и хочу сделать так:

Код

void super_function(QMap<QString, QVariant>() << ???);


Что мне подставить вместо вопросительных знаков, чтобы обрести счастье? Конечно, я могу заранее объявить эту переменную и просто подставить в функцию, но в целях самообразования стало интересно. К примеру я могу сделать так:

Код

void super_function(QVariant() << 100 << 200 << 400){};


и аналогично хотелось бы поступить с QMap-ом.

Спасибо!

Автор: bsa 7.11.2013, 12:16
Vasya, чтобы это работало с QMap тебе необходимо перегрузить operator<<.

Автор: vinter 7.11.2013, 13:19
Цитата

К примеру я могу сделать так:

С каких пор так можно делать? И что это должно означать?

Добавлено через 2 минуты и 54 секунды
Если использовать современный компилятор и Qt5, то следующее должно работать:
Код

void super_function({{"String", "Variant"}, {"Number", 42}});

При условии, что super_function ждёт QMap<QString, QVariant>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)