Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Перечисление пространств имён через запятую после using namespace #581

Open
daniilrozanov opened this issue Nov 9, 2023 · 3 comments

Comments

@daniilrozanov
Copy link

Вместо того, чтобы тратить строчки с несколькими using namespace X, предлагается разрешить после директивы using namespace перечислять пространства имён через запятую.

Пример:

// ...
void foo() {
  // using namespace ranges;
  // using namespace ranges::view;
  using namespace ranges, ranges::view;
  sort(arr, my_cmp); // ranges::sort
  for (X& x : arr | filter(&filters::even, &X::number)) // ranges::view::filter
    std::cout << x << std::endl;
}
@eoan-ermine
Copy link

using с C++17 поддерживает перечисление имен. Синтаксис using namespace в связи с этим выглядит асимметрично. Интересно, по какой причине вместе с using не завезли и using namespace.

@daniilrozanov
Copy link
Author

using с C++17 поддерживает перечисление имен. Синтаксис using namespace в связи с этим выглядит асимметрично. Интересно, по какой причине вместе с using не завезли и using namespace.

Видимо забыли

@AndreyG
Copy link

AndreyG commented Dec 11, 2023

Нет, не забыли. Мотивацией для using-declarator-s была возможность использовать pack expansion (https://wg21.link/p0195), а вовсе не возможность сэкономить 5 букв на написание слова using. Для using-directive-s такой мотивации нет.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants