Название: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: xintrea от Ноябрь 03, 2010, 23:38 Здравствуйте!
Есть функция, которой может последним параметром передаваться QMap. А может и не передаваться. Вопрос - как в прототипе такой функции прописать значение по-умолчанию для QMap? Пробовал так: Код: void function( QString name, QMap<QString, QStringList> record=QMap<QString, QStringList>() ) Компиляция не идет, выдает ошибку: Код: src/recordtabledata.h:53: error: expected ‘,’ or ‘...’ before ‘>’ token Как сделать правильно? Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: BlackTass от Ноябрь 03, 2010, 23:39 Код: void function( QString name, QMap<QString, QStringList> record=(QMap<QString, QStringList>()) ) Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: xintrea от Ноябрь 04, 2010, 00:05 Не, не помогает.
Я вот думаю, чего это я задал в качестве значения по-умолчанию значение конструктора QMap(), так же нельзя. Должна быть какая-то константа вроде. А как для QMap контанту сделать? Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: BlackTass от Ноябрь 04, 2010, 00:07 ну во первых советую все же сделать const reference
во-вторых сделайте typedef Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: xintrea от Ноябрь 04, 2010, 00:10 ну во первых советую все же сделать const reference во-вторых сделайте typedef typedef делал. А с const у меня вечные проблемы, не понимаю я как им пользоваться. Что имеется в виду под const reference? Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: BlackTass от Ноябрь 04, 2010, 00:24 const QMap<QString, QStringList> ¶m
Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: xintrea от Ноябрь 04, 2010, 00:34 const QMap<QString, QStringList> ¶m А в прототипе с указанием значения по-умолчанию, как это должно выглядеть? Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: BlackTass от Ноябрь 04, 2010, 00:46 Код: void function( QString name, const QMap<QString, QStringList> &record=(QMap<QString, QStringList>()) ); Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: xintrea от Ноябрь 04, 2010, 02:18 Код: void function( QString name, const QMap<QString, QStringList> &record=(QMap<QString, QStringList>()) ); Угу, спасибо. Немножко по-другому, но получилось. Оказалось, что еще и gcc (Debian 4.3.2-1.1) 4.3.2 у меня бажный. Вот этот пример у меня не компилируется: http://rghost.ru/3139469 (http://rghost.ru/3139469), а у других компиляция идет. А чтоб у меня пошла компиляция, нужно дефолтное значение в скобки взять. Хотя я так с самого начала и делал - всеравно компилация не шла, уж не знаю почему. Название: Re: Как написать для QMap значение по-умолчанию в прототипе функции? Отправлено: BlackTass от Ноябрь 04, 2010, 02:26 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57 вот здесь написано почему в 4.3.2 это не компилится. Надо пользоваться 4.4, либо писать воркэраунд в виде тайпдефа или скобок
|