我正在用标准C++编写一个库来进行语音转换.我现在使用std :: string.但是将来我可能不得不将其更改为其他(std :: wstring或其他).所以我需要以这样的方式编写我的库,以便我可以轻松地切换它.到目前为止,我已经完成了以下工作.
创建了一个将由所有CPP文件使用的头文件
为此添加了"typedef std :: string",并在文件中的任何位置使用了新名称.
如果我需要更改类型,我可以简单地更改头文件,它将反映在任何地方.如果有人能看到这是正确的做法,还是有更好的方法可以做到这一点,我会很感激?
谢谢
您可以编写可以使用任何类型的字符串的模板函数,或者对于任何具有正确方法的函数.
如果按照建议执行typedef,则在更改typedef时,将来需要更改所有代码.我建议不要这样做.
编辑:关键是字符串和wstring不可互换.当然,你可以通过改变一行来更新您的图书馆,但是这仅仅是开始 - 改变的typedef意味着你改变你的图书馆的公共API.您必须更改并测试与库交互的所有代码,这可能代表了所涉及的大部分工作.甚至可以通过简单的搜索和替换来更新您的库,然后typedef就没有给您买任何东西.
坚持每个人都知道和理解的标准类型是有价值的.