用define替换两个函数调用

时间:2014-06-09 06:37:19

标签: c++ qt macros

我想在Qt4中替换转换QStringchar*的流程:

str.toLatin1().data()
在Qt3中

相同:

str.latin()

使用一些结构:

#define toLatin1().data() latin()

真的吗?还有另一种方法吗?

1 个答案:

答案 0 :(得分:3)

我说最可维护的解决方案是为它引入一个功能:

inline const char* qstringToLatinChar(const QString &str)
{
#if Qt4
  return str.toLatin1().data();
#else
  return str.latin();
#endif
}

即使使用sed等,也可以在现有代码站点快速替换此类函数。它还具有为操作引入有意义名称的额外好处。