尝试在具有多个 std::string const &
参数的函数上追踪 LNK2019 未解析的外部符号错误。
this answer 的第一步说要检查修饰过的/未修饰过的名字,这就是我在参数列表的链接器错误文本中看到的:
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &
这也是 std::string const &
吗?
感谢您的帮助。
我正在运行 VS 2008。
最佳答案
是的。
作为 C++ 标准化的一部分,std::string
类变得更加与 STL 兼容。与 STL 容器一样,可以选择元素类型。常见的选择是 char
和 wchar_t
, 但 Visual C++ 用户也可以使用 TCHAR
.与 STL 容器一样,内存分配由分配器处理。
然而,字符串与其他容器不同,因为一些方法需要对其元素执行更复杂的操作。 std::set<T>
只需要比较两个 T
对象,但是 std::string
需要处理多字节编码和此类复杂情况。这些细节包含在类 std::char_traits<char>
中.
因此,由于所有这些复杂性,您最终会得到 std::basic_string<char, std::char_traits<char>, std::allocator<char> >
.这当然不是很友好,大多数人只需要默认值。 std::string
是它的友好名称。
关于c++ - 这等同于 std::string 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688112/