首页 > 解决方案 > C++ 内联字符串插值

问题描述

我找到了这个答案,这很好,但对我来说还不够。

他们提供

boost::format("error! value was %1% but I expected %2%") % actualValue % expectedValue

这很好,但比我想要的可读性要差得多(在某些语法中):

boost::format("error! value was %actualValue % but I expected %expectedValue%")

在 C# 中

$"error! value was {actualValue} but I expected {expectedValue}"

在Python中

f"error! value was {actualValue} but I expected {expectedValue}"

这在 C++ 中是否以某种方式支持?

标签: c++stringformattingstring-interpolation

解决方案


Microsoft 有一个 C++ 标准提案。插值文字

样品。

int port = 27015;
std::cout << f"Connecting on port {port}...\n";
int get_result() { return 42; }
std::cout << f"The result is {get_result()}\n";

我喜欢这种语法。它简洁美观。

不幸的是,直到 2022.2 才出现真正的 C++ 实现库。


推荐阅读