У меня есть функция типаКак передать параметр по умолчанию для станд :: shared_ptr <PureVirtualClass>
virtual void foo(bla, bla, bla, std::shared_ptr<LoggerInterface> logger) = 0;
И я хочу передать параметр по умолчанию с указателем NULL, что-то вроде:
virtual void foo(bla, bla, bla, std::shared_ptr<LoggerInterface> logger = NULL) = 0;
Так что в реализации, если logger NULL
, я ничего не делаю с этим, иначе я использую регистратор.
Я пытался искать решение, но не могу найти ..
UPD: Дублированное требование не имеет никакого отношения, я прошу о параметре по умолчанию NULL.
Возможно ли, что gcc 4.4 не поддерживает nullptr?
Вы должны использовать 'nullptr' вместо 'NULL'. Последний является макросом, который, скорее всего, «0», первый является правильным литералом для нулевого указателя. – CoryKramer
Я попытался, но также получил ошибку компиляции: Ошибка: 'nullptr' не был объявлен в этой области –
Этот вопрос не является дубликатом «Возможные параметры виртуальных функций». Тот факт, что функция виртуальна, не имеет отношения к этому вопросу. – IanPudney