Есть ли синтаксис сахара для использования в CPP? Как использовать std::{name1, name2,..., nameN}?

Допустим, я хочу использовать

#include <iostream>

using std::cout;
using std::cin;
using std::endl;

Но я не хочу использовать

using namespace std;

Есть ли что-то вроде этого:

using std::{cout, cin, endl};

я пробовал

using std::{cout, cin, endl};

Вместо этого я получил синтаксическую ошибку.

Нет, такого синтаксиса нет.

NathanOliver 18.11.2022 17:29

Вы должны просто привыкнуть писать std:: как и большинство из нас. Поначалу это кажется беспорядком, но быстро вы начинаете находить утешение в том, что функция является стандартной, особенно когда менее часто используемые функции начинают внедряться в большую базу кода.

François Andrieux 18.11.2022 17:29

Просто используйте std::cout, дополнительные несколько нажатий клавиш того стоят.

user438383 18.11.2022 17:31

написание списка using std::cout; using std::... занимает около 10 секунд, а время, необходимое для обдумывания алгоритма, может занять 10 часов, 10 дней и более. На самом деле стоимость ввода настолько незначительна, что хорошие кодовые базы никогда не используют using std::cout или что-то подобное, а всегда печатают std:: целиком.

phuclv 18.11.2022 17:41
using std::cout, std::cin, std::endl;
QuentinUK 18.11.2022 18:00

@FrançoisAndrieux Это не «похоже» на беспорядок, это беспорядок. Конечно, есть веские причины для явного определения пространств имен, но только из-за этого давайте не будем упускать из виду тот факт, что пространства имен в C++ вносят объективный беспорядок, который оказывает конкретное негативное влияние на читабельность. И одним из конкретных негативных последствий этого является то, что пространства имен в C++ почти всегда плоские (чтобы сохранить управляемость влияния на читабельность), несмотря на тот факт, что вложенные пространства имен могут быть (и в других языках являются) ценным инструментом для организации API. .

Konrad Rudolph 18.11.2022 18:35

Я перечисляю элементы в пространстве имен при написании теста, и мне нужны маршеры из gmock, и я не нахожу это болезненным или раздражающим. using testing::IsNull; ... и при составлении маршеров неплохо отказаться от пространства имен.

Marek R 18.11.2022 19:04

Кстати, что еще, по вашему мнению, вы должны внести в глобальное пространство имен с помощью using std::...? Обратите внимание, что есть поиск, зависящий от аргумента (ADL), который удобен и довольно часто делает std:: ненужным. Например getline(std::cin, s).

Marek R 18.11.2022 19:09
Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
0
8
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Начиная с С++ 17, вы можете добавлять несколько объектов в using через запятую.

using std::vector, std::cout, std::cin;

Раньше для каждого требовался отдельный оператор using. См. декларацию использования. Вы должны указать полный путь для каждого объявления.

Другие вопросы по теме