-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
StrVec和Vec的实现 #58
Comments
13.5 章节里 另外,为什么要声明为 static 呢?
方便贴出代码吗? |
。。难道书不一样?我的是《C++ Primer》第五版中文版。在我的书上13.5章节中StrVec的定义中,关于alloc的定义是这样的: |
关于为什么static一定要类外定义,上面的链接解释的不错. c++表中中对内存的分配, 提供了 那么,问题是一定要搞成
得到几点结论:
没看过vs的STL咋实现的,是不是也提供了一个自己的内存分配类且提供了静态函数.
另外, c++11提供了allocator_traits, 提供了
|
统一回复一下上面那几位:中文版有 首先,SGI STL 的源码是 C++ 7的,非常非常古老。如果为了学习钻研,可以借鉴,但平心而论,其意义不大了。不如花时间去读 CppCoreGuidelines.
其次,你提到 VS, 而它恰恰就是用你后来提到的 以下截自 Visual Studio 2017: 而 VS 有没有像你们猜测的那样,使用静态成员变量呢?其实并没有: 当然,这里的实现要比书上的例子复杂太多,所以情况不可一概而论。譬如这里的 |
really make sense!
习惯了套路还是能看懂的,其他版本我看的有点晕. SGI早起的版本继承比较少,新的SGI各种继承也复杂。SGI还是可以入门看看的。 |
应该版本问题,不是翻译者私加的,作者的示例源码
|
ex13.39(实现StrVec)中的alloc为什么不像书上那样声明为static成员呢?
我在实现ex16.16(将StrVec实现为模板)时,发现将alloc声明为非static成员会编译通过,而如果将它声明为static的话,VS2013会提示“无法解析的外部符号”,能不能解释一下为什么?
The text was updated successfully, but these errors were encountered: