次のコンストラクターがどのように機能するかを説明するのに役立つ人は誰でも、
class StringData {
public:
/**
* Constructs a StringData explicitly, for the case of a literal whose size is known at
* compile time.
*/
struct LiteralTag {};
template<size_t N>
StringData( const char (&val)[N], LiteralTag )
: _data(&val[0]), _size(N-1) {}
private:
const char* _data; // is not guaranted to be null terminated
mutable size_t _size; // 'size' does not include the null terminator
}
なぜこのコンストラクタを使用しないのですか?
StringData(const char *c):_data(c){}
完全なソース コードは、http: //api.mongodb.org/cplusplus/1.7.1/stringdata_8h_source.htmlにあります。