ideas
ideas copied to clipboard
Перечисление пространств имён через запятую после using namespace
Вместо того, чтобы тратить строчки с несколькими 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;
}
using
с C++17 поддерживает перечисление имен. Синтаксис using namespace
в связи с этим выглядит асимметрично. Интересно, по какой причине вместе с using
не завезли и using namespace
.
using
с C++17 поддерживает перечисление имен. Синтаксисusing namespace
в связи с этим выглядит асимметрично. Интересно, по какой причине вместе сusing
не завезли иusing namespace
.
Видимо забыли
Нет, не забыли. Мотивацией для using-declarator-s была возможность использовать pack expansion (https://wg21.link/p0195), а вовсе не возможность сэкономить 5 букв на написание слова using
. Для using-directive-s такой мотивации нет.