[過去ログ] Boost総合スレ part7 (989レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
939
(1): デフォルトの名無しさん [sage] 2009/08/19(水) 20:14:56 AAS
Formatter Expressions
外部リンク[html]:www.boost.org
を参考に以下のコードを書いてテストしてみたのですが,まったく置換されず困っています.
#include <map>
#include <string>
#include <iostream>
#include <boost/xpressive/xpressive.hpp>
#include <boost/xpressive/regex_actions.hpp>
using namespace boost::xpressive;
int main()
{
std::locale::global(std::locale("japanese")); // ここをコメントアウトしても結果はまったく変わらず
std::map<int, std::wstring> env;
env[0] = L"this";
env[1] = L"that";
std::wstring input(L"$(0) has the value $(1)");
wsregex envar = L"$(" >> (s1 = +_d) >> L')';
std::wstring output = regex_replace(input, envar, ref(env)[as<int>(s1)]);
std::wcout << output << std::endl;
}
main()を
std::map<int, std::string> env;
env[0] = "this";
env[1] = "that";
std::string input("$(0) has the value $(1)");
sregex envar = "$(" >> (s1 = +_d) >> ')';
std::string output = regex_replace(input, envar, ref(env)[as<int>(s1)]);
std::cout << output << std::endl;
とすると,意図したとおりにちゃんと置換されます.
どうすれば wchar_t を用いた最初のコードでも正しく置換されるようにできるのでしょうか?
教えてください.
941: 939 [sage] 2009/08/20(木) 01:18:10 AAS
書き忘れましたが、環境はVC9SP1, Boost 1.39です
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.054s