Константа локальной области как аргумент функции по умолчаниюC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Константа локальной области как аргумент функции по умолчанию

Сообщение Anonymous »

Может ли объявление функции в области функции иметь локально определенную константу в качестве аргумента по умолчанию?
Например,

Код: Выделить всё

void f(int) {}

int main() {
constexpr int c = 1;
void f(int = c);
f();
}
GCC это не нравится, говоря

ошибка: локальная переменная 'c' может не отображаться в этом контексте

MSVC ведет себя аналогично:

ошибка C2587: 'c': незаконное использование локальной переменной как параметр по умолчанию

Но Кланг прекрасно это воспринимает. Онлайн-демо: https://gcc.godbolt.org/z/9vWoK6TEz
Какая реализация здесь правильная?

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-argument
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Константа локальной области как аргумент функции по умолчанию
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Константа локальной области как аргумент функции по умолчанию
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Аргумент функции, принимающий другой аргумент в качестве значения по умолчанию
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как определить аргумент функции как другой аргумент функции
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Что означает константа в конце функции-члена? [дубликат]
    Гость » » в форуме C++
    0 Ответы
    43 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»