为何C++23及fmt库不支持无需格式串的print(ln)?能否新增该特性?
关于C++23
<print> 简化单值打印的疑问 我平时写代码经常需要向终端打印值,十分青睐C++23的<print>功能,常用写法如下:
std::println("{}", value);
但仅需打印值本身时,该语法过于冗余,我更希望使用简洁写法:
std::println(value);
遗憾的是C++目前不支持该写法,我想了解背后的原因,同时想知道:
- C++标准或fmt库是否已有这类功能,或是未来会推出相关选项?
- 这种简化写法的提议是否曾被考虑过,之后又被否决?
另外我已编写了符合需求的简单包装器,但每次使用都需额外定义,更希望该功能能直接纳入std或fmt库中:
template <typename T> void println(T&& value) { std::println("{}", std::forward<T>(value)); }
内容的提问来源于stack exchange,提问作者Daniel Langr
相关产品推荐
相关产品推荐

