std::endl
may cause an unnecessary flushstd::endl
используется вместо более эффективной \n
Этот дефект помечает использование std::endl
в операциях ввода-вывода и позволяет использовать более эффективную альтернативу, \n
.
std::endl
вставляет новую строку (\n
) с последующей операцией промывки. Для образца:
std::cout << "Some content" << std::endl;
std::cout << "Some content" << '\n' << std::flush;
std::endl
неявная операция промывки может значительно снизить эффективность программы. Поскольку операция сброса неявна, в случае проблемы с эффективностью будет трудно отследить первопричину проблемы.Использование \n
вводить новую строку везде, где это возможно.
Если вам требуется операция промывки, вместо std::endl
, использовать \n
за которым следует явная операция промывки, для образца:
std::cout << "Some content" << '\n' << std::flush;
Эффективность улучшения могут варьироваться в зависимости от используемого компилятора, реализации библиотеки и окружения.
Группа: Эффективность |
Язык: C++ |
По умолчанию: Off |
Синтаксис командной строки
: STD_ENDL_USE |
Влияние: Низкое |