C++相談室 part11
■ このスレッドは過去ログ倉庫に格納されています
0722デフォルトの名無しさん
NGNGpublic:
variant(const std::string& in_value) :value(in_value) {}
~variant() {}
operator const char*() const { return value.c_str(); }
template <typename value_type>
operator value_type() const {
return boost::lexical_cast<value_type>(value);
}
private:
const std::string value;
};
variant GetData(データ格納先) {
return variant(データ);
}
という実装を試してみたんですが
int a = GetData(データ格納先); // safe
string s = GetData(データ格納先); // abnormal termination
const char* lpstr = GetData(データ格納先); // lexical_cast内部でコンパイルエラー
となってしまいした・・・
引数の場合はテンプレートに対して型を明示してやればオーバーロードできたのですが
キャストオペレータ(て言うのかな)の場合はうまく特殊化できないようなのです
なにか解決策はありますか?
環境はBCC5.5.1+BCC添付のSTL+BOOST1.28
■ このスレッドは過去ログ倉庫に格納されています