2 dilbert3322 Dilbert3322 于 2016.09.07 20:29 提问

typedef __gnu_cxx::__sso_string string这句是怎么回事?

这个是不是string关键字的重载?表示string不再是标准库当中的string,而是其他某个namespace当中的?

1个回答

coding_hello
coding_hello   2016.09.07 21:51

就是个类型别名,用来解决名字空间引用的问题。__gnu_cxx::__sso_string是string类的一个实现。

Dilbert3322
Dilbert3322 回复野男孩: 谢谢。感觉这个有点像数据类型的继承重载什么的。
接近 2 年之前 回复
coding_hello
coding_hello 回复Dilbert3322: 是这个意思。更准确的说法是,让这句所在的命名空间以后的所有string都变成__gnu_cxx::__sso_string
接近 2 年之前 回复
Dilbert3322
Dilbert3322 我还是没懂,typedef A B不是把A“别名”成B吗?这里是不是让这句所在命名空间以后的所有:__sso_string都变成string类?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
__sso_string与std::string的区别
在学习muduo库源码的时候在,base文件夹下的type.h有 #ifdef MUDUO_STD_STRING using std::string; #else // !MUDUO_STD_STRING typedef __gnu_cxx::__sso_string string; #endif就想了解一下__sso_string和std::string 的区别:
__gnu_cxx::__concurrence_broadcast_error错误解决方法
最近修改代码在主机编译运行正常,但是交叉编译在arm平台上运行出现下面错误: terminate called after throwing an instance of '__gnu_cxx::__concurrence_broadcast_error' what():  __gnu_cxx::__concurrence_broadcast_error 在google上搜了一通,找到了
C++ string的COW和SSO
还记得书本上的关于深拷贝和浅拷贝的问题吗? 如果自己写的一个类TestClass,采用的是默认的构造函数,或者采用自定义的构造函数(但是没有实现深拷贝)。那么下面的代码: class TestClass { public: char * p; }; TestClass a; TestClass  b(a); TestClass  c = a; 上诉都是浅
STL内存管理器(Allocator)简单理解
转自:http://blog.csdn.net/yfkiss/article/details/6633337 1. 概述 STL Allocator是STL的内存管理器,也是最低调的部分之一,你可能使用了3年stl,但却不知其为何物。 STL标准如下介绍Allocator the STL includes some low-level mechanisms for allocating a
STL的内存分配(各种allocator)
有感于STL的内存管理   警告:本文是技术类文章,只适合码工们围观,非码工请跳过此坑 1. 背景 前些天在一个技术分享会上,某大牛说,STL使用了内存池,释放内存的时候,并不释放给OS,而是自己由留着用。 听到这些观点后,我就有些着急了,因为我以前一直是直接使用STL的一些工具类的,比如std::string、std::map、std::vector、std::list等等,从来都没
关于typedef char 和#define
typedef char *String_t定义了一个新的类型别名,有类型检查。而#define String_d char* 只是做了个简单的替换,无类型检查,前者在编译的时候处理,后者在预编译的时候处理。同时定义多个多个变量的时候有区别,主要的区别在于这种使用方式String_t a,b;String_d c,d;a ,b,c都是char* 类型,而d为char类型,由于typedef还要做类
string显示问题
string显示不正确
GCC4.7.0库<array>,<vector>的简单讲解和C++11带来的变化
实习满2个月了.谨以此文缅怀本来应该是我最后一个暑假却用来实习的暑假.T_T(楼主强烈声明,实习生活很nice,前面只是吐槽,请无视)     入正题,循惯例,上图先:        简单来看,vector是继承_Vector_base,这里可以说分为两层去实现,在_Vector_base当中封装了跟内存分配相关的操作,如_M_allocate(),_M_deallocate()等,在_Ve
C++编程故障处理—— conversion from ‘__gnu_cxx::__normal_iterator
报错:conversion from ‘__gnu_cxx::__normal_iterator 原因:将const型的迭代器赋值给了非
__gnu_cxx
__gnu_cxx这是一个名子空间名(namespace)名,在GCC编译器使用的C++库中定义(名子空间的定义与一般变量不同,并不局限于某一文件)。定义这个名子空间的目的有二:一是将一些内部名子(编译器实现相关)与 std 空间隔离,二是为了实现一些公用的GNU扩展。