Почему некоторые имена недоступны в std?

186
11 мая 2019, 19:10

Почему большинство имён стандартной библиотеки доступны с помощью std::, а для некоторых нужно указывать дополнительные пространства? Например, std::chrono:: и std::filesystem::.

Answer 1

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

Можно сокращать префикс:

namespace fs = std::filesystem;
fs::path p1 = "C:\\file";
READ ALSO
Работа с функцией VirtualAlloc()

Работа с функцией VirtualAlloc()

Как через Edit ввести параметр dwSize в функции VirtualAlloc()? Когда пишу просто в самой функции размер региона:

211
ImGui - Application.exe has triggered a breakpoint

ImGui - Application.exe has triggered a breakpoint

После того, как в проекте появилась компиляция с CLR, программа падает в следующем куске кода:

203
Из файла записать в массив

Из файла записать в массив

Нужно записать значения из файла в массивВ файле все выглядит как таблица 5 на 3

213
Нормально ли с точки зрения хорошей архитектуры иметь метод на 50-60+ строк? [закрыт]

Нормально ли с точки зрения хорошей архитектуры иметь метод на 50-60+ строк? [закрыт]

Есть метод, на вход которого приходит список Json - строкИз них нужно распарсить данные, преобразовать их к рабочему виду и склеить в один текст,...

181