Aix Visual Age C ++ перенесена из версии 8 в версию 11 шаблона - PullRequest
0 голосов
/ 31 января 2011

Проблема, с которой мы сталкиваемся, - это вызов метода в классе, инкапсулированном в шаблон.

void BuildData(DataBuilder &dBuild, char* name="AccountDetails") { ... }

В компиляторе версии 8, вызывающем этот метод с одним параметром, выбирает значение по умолчанию и работает.

В компиляторе версии 11, вызывающем этот метод с одним параметром, мы получаем ошибку компиляции, которая требует явного указания второго параметра, игнорируя значение по умолчанию.

1 Ответ

3 голосов
/ 31 января 2011

Если вы укажете один аргумент, значение по умолчанию "AccountDetails" должно быть преобразовано в тип char*. Не видя ошибки, я предполагаю, что это «потерянный const квалификатор» или как там его называют AIX. Строковый литерал не может быть изменен, но name указывает на строку, которую можно изменить. Обычно это предупреждение, но это зависит от настроек компилятора.

Исправлено, вероятно, добавление отсутствующего const.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...