basic_string,该怎么处理
basic_string
namespace std
{
template<>
struct char_traits<unsigned char>
{
……
};
}
typedef std::basic_string <unsigned char> mystring_t;
上面是一个类型的定义,应该是一个basic_string模板,最后那条语句怎么解?
mystring_t str;
void* data;
size_t size;
str = mystring_t ((unsigned char*) data , size );
是构造一个 mystring_t 类型的对象,它的size大小和字符串内容?
------解决方案--------------------
typedef是申明语句, 不是定义。
std::basic_string的一个构造函数原型如下:
此处charT是unsigned char。
先构造一个无名临时对象, 然后从这个无名对象赋值拷贝(或赋值移动, C++ 11)到str
namespace std
{
template<>
struct char_traits<unsigned char>
{
……
};
}
typedef std::basic_string <unsigned char> mystring_t;
上面是一个类型的定义,应该是一个basic_string模板,最后那条语句怎么解?
mystring_t str;
void* data;
size_t size;
str = mystring_t ((unsigned char*) data , size );
是构造一个 mystring_t 类型的对象,它的size大小和字符串内容?
------解决方案--------------------
typedef是申明语句, 不是定义。
std::basic_string的一个构造函数原型如下:
basic_string (const charT* s, size_type n,
const allocator_type& alloc = allocator_type());
此处charT是unsigned char。
]str = mystring_t ((unsigned char*) data , size );
先构造一个无名临时对象, 然后从这个无名对象赋值拷贝(或赋值移动, C++ 11)到str