用define替换两次函数调用
Replace two calls of functions with define
我想替换Qt4中QString
到char*
的转换流程:
str.toLatin1().data()
与Qt3相同:
str.latin()
使用如下结构:
#define toLatin1().data() latin()
是真的吗?还有别的办法吗?
我认为最可维护的解决方案是为它引入一个函数:
inline const char* qstringToLatinChar(const QString &str)
{
#if Qt4
return str.toLatin1().data();
#else
return str.latin();
#endif
}
这样的函数即使用sed
之类的也可以在已有的代码位点上快速替换。它还有一个额外的好处,就是为操作引入了一个有意义的名称。
相关文章:
- 从具有按值捕获的 lambda 移动构造 std::函数时,移动构造函数调用两次
- C++析构函数调用两次,堆栈分配的复合对象
- 对于优化级别为 0 的 std::vector,析构函数被调用两次
- 为什么转换运算符调用复制构造函数两次,而等效函数只调用它一次
- 调用一个小函数两次(例如在if条件和主体中)比将结果存储在局部变量中更可取
- 为什么这个自定义分配器的析构函数在 GCC/MSVS 的 stdlib 中被调用两次
- 调用某个回调函数两次会导致分段错误:Nan
- 重载运算符 new(),为什么构造函数被调用两次?
- 为同一存储位置调用构造函数两次是否合法?
- 为什么在下面的代码中调用复制构造函数两次
- 为什么在这里调用析构函数两次
- while 循环在一个函数调用中执行两次
- 为什么这个构造函数被调用两次
- 析构函数在与 STL 的共享指针中调用两次
- 为什么在C 中超载邮政增量运算符两次调用构造函数
- 现代C++编译器是否能够避免在某些条件下两次调用常量函数
- 构造函数在不同线程中的静态单例类上调用两次
- 类析构函数在创建shared_ptr时调用两次
- 在c++中,使用指针的两个函数调用之间的区别是什么?
- 用define替换两次函数调用