[過去ログ]
Boostを語れゴラァ part3 (1001レス)
Boostを語れゴラァ part3 http://echo.5ch.net/test/read.cgi/tech/1158991211/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
73: デフォルトの名無しさん [sage] 2006/10/09(月) 19:16:27 >>72 よかった、頑張ってみます さんくす http://echo.5ch.net/test/read.cgi/tech/1158991211/73
81: 73 [sage] 2006/10/11(水) 20:35:01 あれから、ワイド文字を使わないシリアライズはできるようになりました しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません コードは25行なんですが、コードに関する質問は 質問スレのほうに書いたほうがよいでしょうか http://echo.5ch.net/test/read.cgi/tech/1158991211/81
83: 73 [sage] 2006/10/11(水) 20:47:31 そうですね、では 現在、コンパイルすると次のエラーがでます C2027: 認識できない型 'boost::STATIC_ASSERTION_FAILURE<x>' が使われています ↑コンパイル時の展開関係などがわかるようなデバッガがほしい・・ 以下コード。 #include <tchar.h> #include <locale> #include <iostream> //#include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_woarchive.hpp> //#define BOOST_LIB_NAME boost_serialization #define BOOST_LIB_NAME boost_wserialization #include <boost/config/auto_link.hpp> class test{ wchar_t* str; template <class Archive> void serialize(Archive& ar, const unsigned int version){ ar & str; } test(){_tcscpy_s(str,(sizeof(_T("TEST"))+1)*2,_T("TEST"));} }; int main(){ test te(); std::locale::global(std::locale("japanese")); boost::archive::text_woarchive oa(std::wcout); //boost::archive::text_oarchive oa(std::cout); oa & te; return 0; } http://echo.5ch.net/test/read.cgi/tech/1158991211/83
84: 73 [sage] 2006/10/11(水) 20:53:31 あ、メモリ確保してない^^; http://echo.5ch.net/test/read.cgi/tech/1158991211/84
86: 73 [sage] 2006/10/11(水) 22:21:21 >>85 まじすか、情報ありがとうございます! あの後、組み込み型での実行は諦めてwstringバージョンを作りました 一応ちゃんと動作しますが、#elifディレクティブのほうは文字化けします #include <tchar.h> #include <string> #include <iostream> #include <fstream> #include <locale> #include <boost/archive/text_woarchive.hpp> #include <boost/archive/text_wiarchive.hpp> #include <boost/serialization/string.hpp> #define BOOST_LIB_NAME boost_serialization #include <boost/config/auto_link.hpp> http://echo.5ch.net/test/read.cgi/tech/1158991211/86
87: 73 [sage] 2006/10/11(水) 22:23:10 class Test{ public: Test(std::wstring s):str(s){}; std::wstring str; private: friend class boost::serialization::access; template<class Archive> void serialize(Archive& ar, const unsigned int version){ ar & str; } }; int main(int, char**){ std::wcout.imbue(std::locale("")); Test te(_T("日本語文字列の入力テスト")); #if 1 std::wofstream ofs(_T("out.txt")); boost::archive::text_woarchive oa(ofs); oa & te; ofs.close(); std::wifstream ifs(_T("out.txt")); boost::archive::text_wiarchive ia(ifs); ia & te; ifs.close(); std::wcout << te.str << std::endl; #elif 1 boost::archive::text_woarchive ar(std::wcout); ar & te; #endif return 0; } http://echo.5ch.net/test/read.cgi/tech/1158991211/87
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s