[過去ログ] Boostを語れゴラァ part3 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
62: 2006/10/02(月)23:41 AAS
うむ、我々もこういった物腰を見習わなければならんね。
63: 2006/10/03(火)00:51 AAS
他のスレでもやってたけど、ここでも塩撒いとこうぜ。
六四事件 天安門
64: 2006/10/03(火)06:57 AAS
台湾独立万歳!
65
(1): 2006/10/04(水)12:38 AAS
まあ俺らがこのスレでやってることは彼らが2000年位前にすでに通った道だからな
66: 2006/10/04(水)12:43 AAS
>>65
そうそう。今では見る影もないけどね。>彼ら
67: 2006/10/04(水)15:53 AAS
じゃあ、俺たちもいずれ・・・
68
(1): 2006/10/08(日)01:51 AAS
boost::operators見てこんな書き方が出来るの初めて知ったよ…

struct foo {
friend bool operator+(const int &lhs, const foo &rhs) {
//...
};
};
69: 2006/10/08(日)02:01 AAS
割と基本的なことだな
70: 2006/10/08(日)02:01 AAS
Barton-Nackman Trick
その本来の目的で使われることが無くなった、
興味深いworkaroundのコード。
テンプレート関数のオーバーロードができなかった時代に考案されたという……。
ADLの助けを借りずしてその関数を呼び出すことは不可能とされている。

民明書房「黎明期の貧弱なコンパイラとその制約」より
71: 2006/10/08(日)04:05 AAS
wserializationって、もしかしてまだ準備中?
Boostを導入しようと思ったきっかけが
シリアライズが楽にできそう、なんで、いきなり挫折しそう
72
(1): 2006/10/08(日)23:41 AAS
特に問題はないと思うが。
ただ大域locale(std::locale::global)の設定をしないとうまくいかない場合があるはず。
73
(5): 2006/10/09(月)19:16 AAS
>>72
よかった、頑張ってみます
さんくす
74: 2006/10/10(火)00:04 AAS
boost::filesystem::wpath
1.34 わくわく
75: 2006/10/10(火)09:41 AAS
てか、まだ 1.34 のレグレッションテストぜんぜん通ってないよ。
76
(2): 2006/10/10(火)20:07 AAS
vc8 + STLport5.0.2 + Boost1.33.1の組み合わせを実行している人っていますか?
77
(3): 2006/10/10(火)22:07 AAS
残念。
俺はvc8 + STLport5.1.0 + Boost1.33.1だ。
78: 2006/10/10(火)23:31 AAS
1.34て今年中には出るのか!?
79
(1): 76 2006/10/11(水)12:53 AAS
>77さん
よろしければ その時のBOOSTのインストール方法をお教えいただけますか?
80: 2006/10/11(水)19:00 AAS
>>68
というか、「出来ないんじゃないか」と考える理由の方がわからんが?
81: 73 2006/10/11(水)20:35 AAS
あれから、ワイド文字を使わないシリアライズはできるようになりました
しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません
コードは25行なんですが、コードに関する質問は
質問スレのほうに書いたほうがよいでしょうか
82: 2006/10/11(水)20:37 AAS
ここでしなかったらスレが無駄過ぎる
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
あ、メモリ確保してない^^;
85
(1): 2006/10/11(水)22:08 AAS
>>83
C2027ってことはVisual C++だろ。
出力の中から、エラーを起こしたテンプレートがどこから実体化されたのか辿れるようになっている。
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;
}
88: 77 2006/10/11(水)22:23 AAS
>>79
まずはbjam.exeをゲットしてboostのフォルダに入れておく。
それから、次のようなバッチファイルを作って、実行。

cd "boostのフォルダ"
set INCLUDE=STLportのヘッダのフォルダ;%INCLUDE%
set LIB=STLportのライブラリのフォルダ;%LIB%
call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
bjam -sTOOLS=vc8_0 --prefix="ライブラリの生成先フォルダ" install

深くは使ってないんで、完璧にうまくいってるかは分からないけど。
89
(2): 76 2006/10/12(木)13:23 AAS
77さん書き込みありがとうございます。
その方法でやってみるとBoostとSTLportがVC8上で共存できませんでした。

>bjam -sTOOLS=vc8_0 --prefix=
ではなく
bjam -sTOOLS=vc8_0-stlport --prefix=
が公式HP上で出るのを待つしかないのでしょうか??
90
(1): 2006/10/12(木)15:28 AAS
>>89
ぐぐったらでてきた
外部リンク:d.hatena.ne.jp
91: 77 2006/10/12(木)18:42 AAS
普通に使えてるけど……
1-
あと 910 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.021s