c++ - 将 C++ 宏重写为函数等

标签 c++ function macros conventions

我有一个经常使用的宏,灵感来自另一个问题:

#define to_string(x) dynamic_cast<ostringstream &> (( ostringstream() << setprecision(4) << dec << x )).str()

这个非常方便,例如与接受字符串输入的函数一起使用:

some_function(to_string("The int is " << my_int));

但是有人告诉我在 C++ 中使用宏是不好的做法,事实上我在让上述内容在不同的编译器上工作时遇到了问题。有没有办法把它写成另一种结构,例如一个功能,它会在哪里具有相同的多功能性?

最佳答案

在 C++11 和更高版本中我们现在有 std::to_string .我们可以使用它将数据转换为字符串并将其附加到您想要的任何内容。

some_function("The int is " + std::to_string(my_int));

关于c++ - 将 C++ 宏重写为函数等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280324/

相关文章:

c++ - 从文件中读取前 n 个字母到字符串?

c++ - CUDA,有 atomicRead 吗?

python - 返回 Python 中的封闭范围变量

matlab - 将几个 'Name, Value' 参数传递给 MATLAB 函数

macros - 如何为 Notepad++ 编写宏?

c++ - 计算可用磁盘空间

C++:新手初始化列表问题

delphi - 如何在Delphi上正确定义函数?

c++ - 了解带有常量的预处理器宏

c - 打开宏定义 : tdfx_span. c: 需要左值作为赋值的左操作数