如何在Python中实现C++中的F字符串? 我想为C++创建一个F字符串,就像在Python中一样。但是我不明白大括号{}中的表达式是如何解析的

如何在Python中实现C++中的F字符串? 我想为C++创建一个F字符串,就像在Python中一样。但是我不明白大括号{}中的表达式是如何解析的,c++,C++,Python示例: world = "world" print(f "Hello {world}") 我如何做同样的事情,但是在C++中?< /P> std::string world = "world!" std::cout << f("Hello {world}") << std::endl; 一旦编译了一个程序并且没有使用调试模式,变量的名称就会丢失。因此,即使解析f字符串,也无法直接识别预期的变量 但这是一个实际的用例,它是由预编译器解决的:使用特殊的声明,这

Python示例:

world = "world"
print(f "Hello {world}")

我如何做同样的事情,但是在C++中?< /P>

std::string world = "world!"
std::cout << f("Hello {world}") << std::endl;

一旦编译了一个程序并且没有使用调试模式,变量的名称就会丢失。因此,即使解析f字符串,也无法直接识别预期的变量

但这是一个实际的用例,它是由预编译器解决的:使用特殊的声明,这些声明要么依赖于宏来保存F字符串中允许的变量的名称,要么使用预编译阶段,将特殊代码转换成C++代码+在这里做所需的特殊处理,在图中保存变量的名称。使用宏的示例可以在Microsoft MFC中找到,预编译器的示例可以在或Oracle pro*C中找到


我担心对程序员来说,开发比收益更复杂,所以我的答案归结起来是可能的,但不值得。正如许多评论指出的那样,没有这样的字符串插值工具。
但是,如果您尝试用一些变量输出来生成字符串,则可以使用SaveTF来模拟字符串插值。

< P> Serge Ballista和其他人已经编写过,在C++中,CUT目前无法解决变量插入其内容的名称。不过,也可以使用带有参数编号/位置的格式字符串。通过这些,您可以将相应的变量作为参数传递,并使用它们的位置编号引用它们。C++20在标准库中定义。如果您使用的是较旧的编译器版本,则可以使用本例中的库:

#include <iostream>
#include <boost/format.hpp>

int main()
{
    std::string a("world");
    std::string b("Hello");

    std::cout << boost::format("%2% %1%!\n") % a % b;
    return 0;
}

我认为在C++中是不可能的,因为它需要编译的C++代码来了解C++变量的名称。这在C++中是不存在的。就像这个例子,目前在C++中是不可能的,你不能做到这一点。不能用C++中的字符串来查找变量的名称。这是一种完全静态类型的语言,几乎没有反射
#include <iostream>
#include <boost/format.hpp>

int main()
{
    std::string a("world");
    std::string b("Hello");

    std::cout << boost::format("%2% %1%!\n") % a % b;
    return 0;
}