[過去ログ] Boostを語れゴラァ part3 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
73(5): 2006/10/09(月)19:16 AAS
>>72
よかった、頑張ってみます
さんくす
81: 73 2006/10/11(水)20:35 AAS
あれから、ワイド文字を使わないシリアライズはできるようになりました
しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません
コードは25行なんですが、コードに関する質問は
質問スレのほうに書いたほうがよいでしょうか
83(1): 73 2006/10/11(水)20:47 AAS
そうですね、では
現在、コンパイルすると次のエラーがでます
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;
}
84: 73 2006/10/11(水)20:53 AAS
あ、メモリ確保してない^^;
86: 73 2006/10/11(水)22:21 AAS
>>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>
87: 73 2006/10/11(水)22:23 AAS
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;
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.028s