gpt4 book ai didi

c++ - 将处理器宏 __FUNCTION__ 与字符串连接起来

转载 作者:太空狗 更新时间:2023-10-29 21:35:18 26 4
gpt4 key购买 nike

这应该是微不足道的,但我似乎无法弄清楚如何将 __FUNCTION__ 与字符串连接起来,尤其是在 GCC 上——尽管它适用于 VC++(我正在将一些代码移植到 Linux)

#include <iostream>
#include <string>

#define KLASS_NAME "Global"

int main()
{
std::string msg = KLASS_NAME "::" __FUNCTION__;
std::cout << msg << std::endl;
}

Online VC++ version

GCC 错误信息

Test.cpp:9:36: error: expected ‘,’ or ‘;’ before ‘__FUNCTION__’
std::string msg = KLASS_NAME "::" __FUNCTION__;

更新

感谢 Chris,显然相邻的字符串文字被连接起来了 [reference] .所以 VC++ 在这种情况下可能是正确的,直到您认为 __FUNCTION__ 是非标准的。

最佳答案

您需要一个连接运算符并显式构造字符串,以便找到正确的连接运算符:

#include <iostream>
#include <string>

#define KLASS_NAME "Global"

int main()
{
std::string msg = std::string(KLASS_NAME) + "::" + __FUNCTION__;
std::cout << msg << std::endl;
}

实例:http://ideone.com/vn4yra

关于c++ - 将处理器宏 __FUNCTION__ 与字符串连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43116271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com