公共图书馆的char或std :: string数组?

Jon*_*han 2 c++ compiler-construction string standards char

我的问题很简单:
我应该使用char数组,例如:

char *buf, buf2[MAX_STRING_LENGTH]  
Run Code Online (Sandbox Code Playgroud)

等或者我应该在一个库中使用std :: string,这些库将被其他程序员使用,他们可以在他们选择的任何SO和编译器上使用它吗?

考虑性能和便携性......

从我的角度来看,std字符串更容易,性能相同或差别太小,不能使用std:string,关于可移植性,我不知道.我想因为它是标准的,所以不应该有任何编译器在没有它的情况下编译C++,至少是任何重要的编译器.

编辑:
该库将在3个主要操作系统上编译,理论上,作为库分发

你的意见?

蒂,

dir*_*tly 5

取决于该库如何与客户端代码一起使用.如果它将动态链接并且您为客户端公开了一组API - 最好使用空终止字节字符串(即char *)及其宽字符对应项.如果您正在谈论在代码中使用它们,您当然可以自由使用std::string.如果它将包含在源表单中 - std::string工作正常.