void function(const char * str){}
ostringstream oss;
function(oss<<"abc");
なんてことができたら便利だなと思ったのですが、<<演算子を使うとstd::basic_ostream<_Elem,_Traits>が返される上に、これをstringやconst char*に変換することができません。どうすればよいでしょうか?
ostream から const char* に変換したい
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 15年前
- 住所: 東京
Re: ostream から const char* に変換したい
自動的に変換されるように、グローバルな演算子オーバーロードを定義しようと思ったのですが、エラーが出てしまいました。グローバルな演算子オーバーロードを定義する際は第1引数に「属することになるクラス」を指定する必要があるそうですが、この場合どのように指定すべきなのでしょうか?
エラー内容
template <class charT, class traits, class T>
operator const char* (const basic_ostream<charT, traits> &os){
return (dynamic_cast<ostringstream&> os).str().c_str();
}