stringクラス?
C++にstringクラスなんてない。
std名前空間の中にもない。つまりstd::stringクラスもない。でもC++で以下のようなコードはコンパイルできるし、もちろん実行もできる。
#include
<string>#include
<iostream>int
main() { std::string str ="hoge"
; std::cout << str << std::endl; }
これを見るとstd::stringクラスが存在するように見える。でもこのstd::stringはクラスではなく、一般的にbasic_string<char>のtypedefでしかない。つまり、std名前空間内で
typedef
basic_string<char
> string;
のようになっている。
ただ、この結果からstd::stringのことをstd::basic_string<char>と呼ぶのはやりすぎな気もするし、std::string typedefってのもしっくりこない。やっぱりstringクラスと呼びたいし、明らかにstd::stringのことをさしているならstringクラスと呼んでもいいような気がする。
どうしたもんだろう?