[過去ログ] Boostを語れゴラァ part4 (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
852
(3): デフォルトの名無しさん [sage] 2007/10/06(土) 23:58:02 AAS
namespace po = boost::program_options ;

po::options_description desc("options") ;
desc.add_options()
  ("hage", po::wvalue< std::wstring >()->default_value("Bjarne Stroustrup") , "hage")
 ;

このコードをコンパイルしようとすると、std::wstringからstd::stringへ、lexical_castしようとしてエラーになるのですが、
あきらめるしかないのでしょうか?
855: デフォルトの名無しさん [sage] 2007/10/07(日) 00:26:09 AAS
>>852
> Throughout this document "Unicode support" is a synonym for "char to wchar_t conversion" support
856: 852 [sage] 2007/10/07(日) 00:52:03 AAS
今日3時に書いた自分のブログの愚痴が、もうgoogleに拾われて、しかも上位に来るとか、何のギャグですか。
861: 852 [sage] 2007/10/07(日) 04:10:44 AAS
自分で書き換えてやろうかとおもったら、
なんか意外とあっさりできてしまった。

boost/program_options/value_semantic.hppに

#include <boost/program_options/detail/convert.hpp>

を付け加えて、

typed_valueのプライマリテンプレートの下に、次のメンバ特殊化を付け加えればいい。
template<>
  typed_value<std::wstring, wchar_t> *
    typed_value<std::wstring, wchar_t>::default_value(std::wstring const & v)
{
  m_default_value = boost::any(v);
  m_default_value_as_text = boost::to_utf8(v);
  return this;
}

メンバ特殊化って便利だね。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s