相关疑难解决方法(0)

如何在我的dll界面或ABI中使用标准库(STL)类?

在导出包含与visual studio警告C4251相关的stl类的类之前,有一些问题:例如这个问题或这个问题.我已经阅读过UnknownRoad的优秀解释.

盲目地禁用警告似乎有点危险,尽管它可能是一种选择.包装所有这些std类并导出它们也不是一个真正的选择.它毕竟被称为标准模板库...即,想要提供这些标准类的接口.

如何在我的dll界面中使用stl-classes?什么是常见做法?

c++ dll stl std c++11

62
推荐指数
1
解决办法
1万
查看次数

std :: string是STL的一部分吗?

(当我说STL时,我说的是围绕容器,迭代器,算法和仿函数的模板库.)
在认为std::string大多数行为像普通容器,带有beginend函数(包括迭代器)之后,我想到了这个问题.一个size通过它们的迭代(例如,功能,并使用所有这些对于在容器上的工作正常STL算法的可能性/范围transform,sort,find等等).

然而,与此同时,它本身并不是容器,因为它不适合存储任意数据的容器.此外,它包含的数据操作主要是通过成员函数一样substr,find_first_of等等,而真正的容器不这样做,让算法处理的.

此外,cplusplus参考站点和C++标准不会std::string与真实容器一起列出,而是列在一个不同的类别中.
但是,在SGI的STL站点上,basic_string(并因此stringtypedef)与另一个容器一起提及,并且basic_string引用站点声明它属于"容器"类别.

现在我的问题是,string实际上是STL的一部分还是它本身就是一个独特的库?
如果它现在属于STL,它在Stepanov开发的原始STL中是否有所不同?

c++ string history stl

36
推荐指数
2
解决办法
9312
查看次数

标签 统计

c++ ×2

stl ×2

c++11 ×1

dll ×1

history ×1

std ×1

string ×1