C ++如何将int参数传递给字符串宏?

时间:2017-05-24 03:04:53

标签: c++ macros

我宣布了一个宏如下:

#define PIECE_TAG(point,cell)       "<Piece NumberOfPoints=\"" STRING(point) "\" NumberOfCells=\"" STRING(cell) "\">"

#define STRING(str) #str

并将其用作:

_out << TAB << TAB << PIECE_TAG(pointsOfMesh.size() , elemsOfMesh.size() ) << ENTER;

但它返回一个字符串:

<Piece NumberOfPoints="pointsOfMesh.size()" NumberOfCells="elemsOfMesh.size()">

我如何将整数值转换为C ++宏中的字符串? 非常感谢你!

1 个答案:

答案 0 :(得分:2)

宏解释字符串,而不是C ++代码。

抛出宏并编写代码。

std::string piece_tag( std::size_t point, std::size_t cell ) {
  std::stringstream ss;
  ss<<"<Piece NumberOfPoints=\"" << point << "\" NumberOfCells=\"" <<cell << "\">";
  return ss.str();
}