我正在尝试将 ATL/MFC 中的 CString 与自定义 CString 实现进行比较,并且我想确保自定义实现中的所有功能都与 ATL/MFC 实现的功能相匹配。
我们有一个自定义 CString 实现的原因是我们可以在 *nix 和 Windows 平台上使用它。接口是一样的,但实现是不同的,所以当我们移植我们的 Windows 代码以使用我们正在编写的 SDK 时,我们不必更改所有名称......我们只需要解决两者之间的差异实施。
对此的任何帮助将不胜感激。谢谢!
就个人而言,我想不出任何。但是,如果我这样做,我将对我拥有的所有用例进行编码,并确保我拥有一个涵盖它的测试。
同样在 Windows 上,您是委托给提供的实现还是您自己的实现?如果您委托,您会发现您的测试更有用,因为它们可以突出差异。
祝你好运,
CString 提供了一整套模板和运算符重载,它继承自 ATLCStringT。为了能够使用 ATL 算法或结构,您需要实现一切(CMAP)。但是,如果您将其用作基本的 char* 包装器,则应该没问题。
请注意,在 Visual Studio 下编译时,CString 比默认的 std::string 更优化。