Boost総合スレ part6
..
75:デフォルトの名無しさん
08/05/13 18:11:19
>>72
VC6とかに入ってるFONTEDITで自分で作ればいい。
90文字程度作ればあとはフォントリンクして終わりだから簡単だぞ。
76:75
08/05/13 18:32:39
ごめん、Win環境限定ならね。
77:デフォルトの名無しさん
08/05/13 21:02:53
プロポーショナルフォントでプログラムに困るようなうんこ環境は
Windows だけなので問題ない。
78:デフォルトの名無しさん
08/05/13 21:23:30
つまんね
79:デフォルトの名無しさん
08/05/14 07:18:51
>>71
CっぽくてもC++で作られたライブラリはCじゃ使えないから線引きは必要だ
80:デフォルトの名無しさん
08/05/19 09:47:56
Emacs使いな人、もしいたらこれでboost使っても
補完が働くか試してみないか?
URLリンク(cedet.sourceforge.net)
81:デフォルトの名無しさん
08/05/19 17:37:45
#include <boost/array.hpp>
#include <boost/serialization/serialization.hpp>
struct S {
boost::array<int, 3> data;
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive& ar, unsigned int ver) {
ar & data.c_array();
}
};
URLリンク(hw001.gate01.com)
ここを見て、boost::array.c_array()で生の配列を取り出してシリアライズしようと思ったのですが、
error C2679: 二項演算子 '&' : 型 'int *' の右オペランドを扱う演算子が見つかりません (または変換できません)。
というエラーが出てしまいました。
どうやればシリアライズできますか?
82:デフォルトの名無しさん
08/05/19 20:56:44
ar & data.elems;でどうよ。
83:81
08/05/20 13:03:27
>>82
thx
コンパイル通りました。
データがpublicに置いてあるとは盲点でした。
連続で申し訳ないですが、もう1つ質問させて下さい。
Let's Boostで解説されているフルインストールをしたんですが、
ライブラリを必要とするboostを使ったものをビルドするとリンクエラーが出てしまいます。
例えば、
URLリンク(www.kmonos.net)
このサンプルをビルドすると、
a.obj : error LNK2001: 外部シンボル ""protected: __thiscall boost::archive::basic_text_iprimitive<class std::basic_istream<char,struct std::char_traits<char> > >
::~basic_text_iprimitive<class std::basic_istream<char,struct std::char_traits<char> > >(void)"
(??1?$basic_text_iprimitive@V?$basic_istream@DU?$char_traits@D@std@@@std@@@archive@boost@@IAE@XZ)" は未解決です。
といったa.objでのerror LNK2001が7個(a.objはサンプルソースをコピペした.cpp)
libboost_serialization-vc80-mt-gd-1_34_1.lib(basic_serializer_map.obj) : error LNK2001: 外部シンボル ""__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)"
(__imp_??1_Container_base@std@@QAE@XZ)" は未解決です。
といったlibboost_serialization-vc80-mt-gd-1_34_1.libでのerror LNK2001が12個出ます。
libboost_serialization-vc80-mt-gd-1_34_1.libでエラーが出るということは、
ライブラリへのパスが通ってないわけじゃないと思うんですが、原因はどこにあるのでしょうか?
84:デフォルトの名無しさん
08/05/20 19:38:03
CRTの設定(静的LIBかDLLか)が食い違っているとそんなエラーが出た気がする。
85:デフォルトの名無しさん
08/05/20 20:38:55
VC2008でビルドするためのパッチを当てる必要があるかもしれない気がする。
86:83
08/05/21 08:34:22
>>84
いろいろ変えてみたら、/MTでlibboost_serialization-vc80-mt-gd-1_34_1.libでのエラーが消えましたが、
a.objでのエラー7個が残ったままです。
>>85
すみません、詳しくお願いします。
環境はVC2008EEです(書き忘れてましたすみません)。
87:デフォルトの名無しさん
08/05/21 08:39:25
>>86
URLリンク(www.nabble.com)
88:デフォルトの名無しさん
08/05/21 12:41:54
>>80
たしか設定済みmeadowに入ってたよね
meadowとVisual Studio組み合わせられると便利なんだけどね
89:83
08/05/21 14:38:36
thx
よく理解しないまま、
URLリンク(www.nabble.com)
に書かれているコードをそれぞれのファイルの末尾に追加してみました。
そして、例のサンプルをビルドしたらエラーは、
C:\Library\boost_1_34_1\boost/config/compiler/visualc.hpp(180) : fatal error C1189: #error :
"Compiler not supported or configured - please reconfigure"
の1つになりました。
うーん、自分の知識が足りないか・・・。
90:デフォルトの名無しさん
08/05/21 16:51:34
>>89
おそらくVC8の設定でライブラリをビルドしてしまっているから
VC9EEの設定で構築しなおす必要がある。
そのURLに載っているファイル4つを編集してbjam --toolset=msvc-9.0すればいい。
>ファイルの末尾に追加
差分の見方がわからないならdiff unifiedでぐぐれ
つーか1_35_0使えばいいんじゃないのか?
91:83
08/05/21 21:10:39
>>90
1_35_0を入れたら、すんなりビルドできました。
最新版を確認するべきだったorz
ありがとうございました。
92:デフォルトの名無しさん
08/05/24 14:55:48
BGLを使い始めたのですが、adjacency_listについて質問があります。
adjacent_vertices()は、adjacency_iteratorのpairを返すのですが、
このイテレータはSTLのRandomAccessIterator要件を満たすと
ドキュメントに書いてあるのですが、以下のコードのように
イテレータに加算すると、コンパイルが通りません。
これは、私のコードに問題があるのでしょうか?
// VertexProp, EdgePropは適当に定義
typedef adjacency_list<setS, vecS, undirectedS,
VertexProp, EdgeProp> Graph;
Graph G;
// Gに頂点やエッジを追加してグラフを作成
// vはGの1頂点で、隣接する頂点は複数個存在
tie(ai, ae) = adjacent_vertices(v, G);
vertex(*(ai+1), G); // コンパイルエラー
ちなみに、環境は以下の通りです。
boost: 1.34.1
コンパイラ: GCC 4.2.3
93:デフォルトの名無しさん
08/05/24 18:20:21
>このイテレータはSTLのRandomAccessIterator要件を満たす
どこに書いてあります?
OutEdgeList を setS で設定しているので,
RandomAccessIterator の要件は満たさないと思いますよ.
94:デフォルトの名無しさん
08/05/25 09:06:16
>>93
URLリンク(www.boost.org)
のMEMBERS OFの項に、
The adjacency iterator type implements the member functions and
operators required of the Random Access Iterator concept, except
that the reference type is the same as the value_type so operator*()
returns by-value.
と記述があるのです。この説明はadjacency_iterator_generator::typeに
ついてのものだと思っていたのですが、勘違いでしょうか?
もう一度ドキュメントを読み返してみたら、MODEL OFの項に
The adjacency iterator adaptor (the type adjacency_iterator_generator<...>::type)
is a model of Multi-Pass Input Iterator .
と記述されていました。これならば、operator+()が定義されていなくても
当然なのですが、ちょっと混乱しています。
95:デフォルトの名無しさん
08/05/25 10:13:04
>>94
adjacency iterator adaptor は out edge iterator を adapt して
operator* の動作を edge の target を返す動作に書き換えるだけだと思います.
なのでそのドキュメントは間違っているのではないかと思います.
adjacency iterator adaptor はベースになっている out edge iterator が
-Multi-Pass Input Iterator なら Multi-Pass Input Iterator
-Forward Iterator なら Forward Iterator
-(ry
という具合に,単にベースの out edge iterator が
どの concept の model かを投影するだけ,というのが正しいのではないかと.
96:95
08/05/25 10:14:21
>>94
それから adjacency_list の adjacency_iterator は
別に adjacency_iterator_adaptor で実装されているとは限らないので,
読むべきドキュメントは adjacency_iterator_adaptor のドキュメントではなくて
あくまで adjacency_list のドキュメントかと思います.
ただ, adjacency_list において adjacency_iterator と out_edge_iterator が
どの iterator concept のモデルなのかの関係については,
↑の議論が踏襲されるのが自然とは思います.
そして現に, Adjacency List のドキュメント
URLリンク(www.boost.org)
では, "The adjacency_iterator models the same iterator concept as out_edge_iterator. " と
書いてあります.
97:95
08/05/25 10:20:15
なので結論としては,
>>92 で adjacency_list の OutEdgeList テンプレートパラメタに setS を指定しているので,
out_edge_iterator は Bidirectional Iterator concept のモデルになり,
従って adjacency_iterator も Bidirectional Iterator concept のモデルなので,
>>92 のランダムアクセスではコンパイルが通らないのだと思います.
98:92
08/05/25 13:45:24
詳細にわたって解説していただきありがとうございます。おっしゃる通り、
まずadjacency_listの解説をよく読むべきでした。
OutEdgeListにsetSを使っているのは、エッジの重複を許したくないと
いうのが理由でした。グラフを読み込む際にエッジの重複をチェック
するようにして、OutEdgeListにはRandomAccessIteratorにするように
すればいいのかとも思いますが、そうするとエッジに対する各操作の
時間複雑度も変わってきてしまい、なかなか悩みどころですね。
よく考えてアルゴリズムを実装します。
99:デフォルトの名無しさん
08/05/31 16:38:48
なんか最近の.NETの中身見てると、Boostが隠ぺいされてそうな雰囲気がするな
100:デフォルトの名無しさん
08/05/31 16:44:17
時代がBoostに追い付いてきたって事か
101:デフォルトの名無しさん
08/06/01 21:59:24
VC++2008EEでboostを使ってみようとboost_1_35_0_setup.exeを使ってインストールしました。
しかし実際に使ってみると「定義されていない識別子です。」と言うエラーが出てコンパイル出来ません。
パスが通っていないのかと思い、以下のように通してみましたが駄目でした。
インストールしたライブラリのタイプ(?)はマルチスレッドとマルチスレッドデバックのみです。
実行ファイルパス…C:\Program Files\boost\boost_1_35_0\bin
インクルードファイル…C:\Program Files\boost\boost_1_35_0
ライブラリファイル…C:\Program Files\boost\boost_1_35_0\lib
102:デフォルトの名無しさん
08/06/01 22:02:07
問題が起きる最小限のソースコードplz
103:デフォルトの名無しさん
08/06/01 22:30:24
エラーメッセージくらい貼ろうよ
104:101
08/06/01 23:00:03
すみません、boost::の付け忘れが原因でしたorz
105:デフォルトの名無しさん
08/06/02 01:07:46
微妙にすれ違いだけど、Lokiってあんまり使われてないのかな。
106:デフォルトの名無しさん
08/06/02 07:33:20
先駆的なライブラリで、(in "Modern C++ Design")
あれの機能は他に取り込まれているから。
107:デフォルトの名無しさん
08/06/02 12:19:38
おお!そうなんだ。取り込まれ先はBoost?
108:デフォルトの名無しさん
08/06/02 20:35:06
今日初めてBoostを導入してSVNからのビルドも一応出来たんだけど、
Bjam+MSVC9でビルドに数時間掛かる。
コマンドプロンプトを見ると、暫く止まって・急に動いての繰り返しでCPUメータを見ても殆ど動いてない。
CPUを100%使い切って構わないのでさっさとビルドを済ませるオプションはありませんか?
109:デフォルトの名無しさん
08/06/02 20:46:29
HDDがボトルネックという可能性は?
110:デフォルトの名無しさん
08/06/02 20:50:07
ボトルネックというより不調発生してトライ&エラー多発してるんでは?
111:デフォルトの名無しさん
08/06/02 21:37:51
HDDはAHCI接続のWD7500AAKSで、空き容量も110GB程度あります。
CPUはCore2Quad 3GHz、メモリは8GBです。
トライ&エラーというとコマンドプロンプトはWarningの嵐ですが、どこかミスしているのでしょうか。
ビルドオプションは
bjam --toolset=msvc -a link=static,shared threading=multi release debug stage
ビルド環境はVS2008EE SP1beta+Windows SDK 6.0.6001.18000.367です。
試しに今もう一度ビルドしていますが、20時32分に最初のライブラリが出来て
21時24分の時点で出来上がったライブラリ数は21、21時36分現在は49です。
112:デフォルトの名無しさん
08/06/02 21:49:14
>>111
監視ログにHDDの不調でてないか?
113:デフォルトの名無しさん
08/06/02 21:55:19
>>111
core2Quad 2,4G 2Gbyteだけど全然かからなかったなあ。
今bin.v2とstageタイムスタンプ見たら10分ぐらいしか幅がない。
CPUメータ上がらないのは変だね。ウイルス対策ソフトとか遅くないか?
114:デフォルトの名無しさん
08/06/02 22:57:24
Event Viewerを見てもそれらしきエラーはありません。
VS2008EEをGUIで立ち上げて他のプロジェクトをビルドするときは4コアを100%使い切って
数分で終わるのですが・・・。22時53分現在のビルド数は102個、大量のWarningはC4819(ソースの文字コード絡み?)です。
動作的にはC4819大量発生→20~30秒程沈黙の繰り返しで、HDDへのアクセスは常に続いていますが動作が散発的です。
セキュリティ関係はVista標準のFirewallのみでDefenderは切ってあります。
Boostの本題と関係無い話でスレを潰すのもあまり好ましくないと思いますので、
似た事例が無いかネット上を探してみます。
115:デフォルトの名無しさん
08/06/03 00:59:14
ビルド終わりました。
214ファイルで4時間15分・・・orz
116:デフォルトの名無しさん
08/06/03 20:04:34
SVNクライアントの設定が変なんじゃね
逐一リポジトリの最新版チェックしてるとか
117:デフォルトの名無しさん
08/06/04 01:50:21
set CL=/wd4819
環境変数CLに登録しておくと文字コードの警告表示されなくてすむよ
118:デフォルトの名無しさん
08/06/04 02:23:24
それより警告の原因をどうにかしたほうが良いんじゃないかな。
文字が化けてそれ以降のコードが滅茶苦茶になってた事があったから。
119:デフォルトの名無しさん
08/06/04 02:43:08
>>117
有難うございます。感謝感激です。
CLに/wd4819をセットしたらビルドが22分で終わりました。CPU使用率も30%前後まで上がりました。
大量のC4819が原因だったみたいです。
警告の原因は多分これでしょうか。
ネットで調べてみるとVisual StudioにはUTF-8Nを読めずC4819を誤検出するバグがあるらしく、
一部のファイルをUTF-8で保存し直せば黙るみたいです(まだ試していません)。
URLリンク(www.ccm.media.kyoto-u.ac.jp)
120:デフォルトの名無しさん
08/06/04 03:10:33
ビルド時の標準出力はファイルにリダイレクトしとかない?
121:デフォルトの名無しさん
08/06/04 03:26:23
grepしないと不安だよね。
122:デフォルトの名無しさん
08/06/04 23:51:24
>>119
それsvnで直接拾ってきたソース?
もしそうならsvnで落とすときに言語設定が日本語になっていて日付が日本語表記になったせいだと思う
123:デフォルトの名無しさん
08/06/05 00:50:43
>>122
ソースはsvnからTortoiseSVNで落としてきて、tools/bjamフォルダ内のbuild_dist.batで組んだbjamで
ビルドしてます。
言語環境は日本語Vista SP1に英語パックを入れた状態ですが、
日本語の文字化けの関係でシステムロケールは日本語にしています。
今見たら日付のフォーマットはLong dateが漢字を使っていたので英語にしました。
次回のビルドで検証してみます。
124:デフォルトの名無しさん
08/06/05 03:29:40
日付と時刻のフォーマットを英語にしてソースを全て落とし直してからビルドしたところ、
/wd4819を設定しなくてもC4819の発生が激減しました。
ビルドも24分で完了しました。有難うございます。
125:デフォルトの名無しさん
08/06/05 03:59:02
珍しく有益な情報だな
やっぱり結論が書いてあるとよい
質問主も回答者も乙
126:デフォルトの名無しさん
08/06/06 09:02:28
そういえばドイツ人の書いたコードにドイツ語コメントあってコンパイルこけたことあったな
127:デフォルトの名無しさん
08/06/06 10:26:55
CじゃなくてPythonだが、スクリプトがエラーを吐くので調べてみたらauthor欄に"◆"が入ってた。
即座に空欄にした。
あの時ほど、死ね2chねらと思ったことはない。
128:デフォルトの名無しさん
08/06/06 15:28:28
boostは確かlexical_castとかのauthorがASCII以外の文字を使ってたような気がするぞ、
129:デフォルトの名無しさん
08/06/11 14:00:59
Boost.Threadに
event
timer
に相当するものがないのはなぜ?
130:デフォルトの名無しさん
08/06/11 14:30:20
スレッドその物じゃない。
131:デフォルトの名無しさん
08/06/11 14:40:50
力作を送れば採用してもらえるかも?
そういえばboostに日本人作のものって入ってるの?
132:デフォルトの名無しさん
08/06/11 15:59:44
boost::conditionとかじゃないのか?
133:デフォルトの名無しさん
08/06/11 16:03:34
>>132は>>129へのレス
むしろ、Lockの名前や使い方が以前のバージョンと違うほうが問題
134:デフォルトの名無しさん
08/06/11 17:12:18
boost.rubyができれば強制的に入ることになるかも
135:デフォルトの名無しさん
08/06/11 18:26:59
>>131
boost::rangeの一部(MFCコンテナ用range)は日本人っぽい名前だったような。
あとこないだまでレビューしてたboost::eggも多分そう。
136:デフォルトの名無しさん
08/06/11 19:29:51
「C++なぞ問題外」と書いたまつもと氏のRubyがboostに入るわけですか
boostは心が広いなぁ、ホント素敵!
137:デフォルトの名無しさん
08/06/11 19:40:03
いいえ、RubyをベースにしたRuby++言語の処理系をboostベースで実装します
138:デフォルトの名無しさん
08/06/11 19:53:23
boost なぞ問題外.^^;;;
139:デフォルトの名無しさん
08/06/11 20:50:38
どうでも良いが個人的にまつもと氏に0xに改善されても尚C++が問題外かどうかを訊ねたい。
140:デフォルトの名無しさん
08/06/11 20:55:22
boostのtime関係って
ってなんであんなにごちゃごちゃしてるの?
boost::date_time
boost::x_time
boost::system_time
141:デフォルトの名無しさん
08/06/11 21:03:26
C++のtime関係がごちゃごちゃしてるからだよ。
142:デフォルトの名無しさん
08/06/12 02:29:45
SVNはasioが頻繁にアップデートされているな。
そのうちDirectSoundと同じ位気軽にASIOを扱える様になるんだろうか。
143:デフォルトの名無しさん
08/06/12 02:32:12
って、ソース見たらASIO関係無い・・・
穴があったら入りたい
144:デフォルトの名無しさん
08/06/12 02:44:50
全くのスレ違いだがPortAudioをオススメしておく
145:デフォルトの名無しさん
08/06/12 03:02:40
ありがとう
146:デフォルトの名無しさん
08/06/12 06:56:32
>>139
URLリンク(jp.rubyist.net)
こんな記事も書いてたぞ。
147:デフォルトの名無しさん
08/06/12 12:29:48
>>139
悪いものに何を付け足しても良くならないと考えるんじゃない?
148:デフォルトの名無しさん
08/06/12 13:59:50
Ruby より優れた言語はこの世に存在しない。
149:デフォルトの名無しさん
08/06/12 14:07:47
スクリプト言語と普通の(?)言語を一緒にされても・・・
150:デフォルトの名無しさん
08/06/12 17:46:02
Rubyでブートローダーとかデバイスドライバとかゲームとか作れるのかよ。
151:デフォルトの名無しさん
08/06/12 18:03:27
boostはpythonをサポートしてるから、boostスレでわめいてもRubyの布教に効果ないよ。
152:デフォルトの名無しさん
08/06/12 18:10:52
空飛ぶパイソンvsキリスト
153:デフォルトの名無しさん
08/06/12 18:28:07
boostがrubyに対応させる?
rubyがboostに対応させる?
154:デフォルトの名無しさん
08/06/12 19:38:59
まー、Java(笑)なんかよりは優秀だろ
Rubyは
155:デフォルトの名無しさん
08/06/12 20:09:15
Java言語がいかに貧弱だろうとJVMが優秀だからJavaが有利
156:デフォルトの名無しさん
08/06/12 21:15:45
最近じゃscalaとかあるしなぁ
157:デフォルトの名無しさん
08/06/12 22:19:12
Fortran「」←帰れと退けたくなる様な事言わせろ
158:デフォルトの名無しさん
08/06/12 22:25:49
>>157
あなた様がいなければ、CやC++といった素晴らしい言語は生まれませんでした
159:デフォルトの名無しさん
08/06/12 22:30:47
Boost.Malbolgeマダー?
160:デフォルトの名無しさん
08/06/12 22:32:13
Fortran「全部大文字で書いてくれ。俺の名前も」(1977)
161:デフォルトの名無しさん
08/06/13 09:38:24
Boost.XML
Boost.SOAP
Boost.CORBA
誰か作ってケロ
162:デフォルトの名無しさん
08/06/13 10:49:42
Boost.XMLはspiritにxml用の設定があったような?
163:デフォルトの名無しさん
08/06/13 12:20:14
xml_iarchive xml_oarchive
164:デフォルトの名無しさん
08/06/13 15:10:55
boost.rails
しかもMPL使いまくりなのを
165:デフォルトの名無しさん
08/06/14 18:42:39
BOOST_AUTOは完全にC++に準拠していて尚且つ拡張の無い環境ではちゃんとコンパイルされるの?
166:デフォルトの名無しさん
08/06/14 21:51:58
それでできたら C++0x の auto の追加はいらないんじゃないか?
でも auto ほど簡単な記述はできないか。
167:デフォルトの名無しさん
08/06/14 22:17:23
コンパイラのバグをうまくついて実装してたりするんじゃなかったっけ?
168:デフォルトの名無しさん
08/06/14 22:32:40
>BOOST_AUTOは完全なコンパイラの元では規定型の自動変数の宣言をラップしたものになる。
>規定型とはC言語時代のint
169:デフォルトの名無しさん
08/06/16 01:43:17
ここ5年はMicrosoftべったりのC++プログラミングの仕事だったんだけど標準に近いC++に戻ってきました。
特にテンプレート周りの環境変化は浦島状態なんですが、なにかお勧めの書籍ないですか?
細かいところはWebでしか追いかけられないのは承知ですが、まとまった内容は書籍の方が体系的に吸収できると思うので。
リハビリでModern C++ Designは読みましたが、今となってはあれも古い本だよねぇ。
LokiはBoostに吸収されてしまってるのかな?
170:デフォルトの名無しさん
08/06/16 05:15:28
日本語のboost本は殆ど初心者向け。君が得られるものは何もない。
以上からお勧めの書籍は存在しないという結論に至る。
まあ導入くらいが目的なら、そこらに落ちてるboost本なら何でも。
171:デフォルトの名無しさん
08/06/16 07:00:15
boost本って稲葉の以外に出てるの?
172:デフォルトの名無しさん
08/06/16 09:08:23
>>171
Boostスレだけど、C++一般なんだよね?
「C++ Coding Standards−101のルール、ガイドライン、ベストプラクティス」
これが今のところ網羅的な本。初心者にもルール集としては便利だけど、
内容は中級以上じゃないと理解できない。
>>171
つ Beyond the C++ Standard Library: An Introduction to Boost
つ The Boost Graph Library: User Guide and Reference Manual
173:デフォルトの名無しさん
08/06/16 09:47:36
日本語は俺も稲葉著以外ないでしょ
>>169
C++ Template Metaprogramming
テンプレートっていうかBoostのTMPの本だがリハビリには丁度良いかと
174:173
08/06/16 09:50:28
間違えた
-日本語は俺も稲葉著以外ないでしょ
+日本語は俺も稲葉著以外知らない
稲葉のも糞とは言わんが内容的に半端だからなぁ
175:デフォルトの名無しさん
08/06/16 11:50:03
みなさん、いろいろ書籍紹介どうもありがと。
とりあえず上がってるやつで日本語のものから優先で読んでみまつね。楽しみです。
ところですれ違いならごめんなさい。
実装環境ですが、WindowsとUnixの両方で動くようなプログラム作成を想定してて
現時点でなるべく新しいものをということで、WindowsはVC9(2008)、UnixはGCCの使用を考えてます。
ここでBoostは、1種類しか実装版がないようなので迷う必要がないですが
STLは、STLPortがいいのでしょうか。それともVC・GCCにはじめから添付されてる(?)やつを使うのが普通ですか?
たぶん性能と導入容易性とでみなさん天秤にかけておられるのと思いますが…。
LokiはTypelistなどMeta Programming関連が非常に興味深かったですが、
有用なものはBoostに包含されていて、とりあえずBoost使ってればOKな感じですか?
ぐぐるとLoki自体はバグがそれなりにとかあったので、仕事には使いづらいのかなとも…。
ちょっと空気が読みきれてなくて、初歩的な質問すまそです。
176:デフォルトの名無しさん
08/06/16 12:01:27
両方のOSで動かしたいだけなら、Cygwin入れてgcc使えばいいのに。
177:デフォルトの名無しさん
08/06/16 13:46:26
・Lokiはもはや必要ない
・Boostの前にTR1
・g++は最新のものを附属のlibstdc++と一緒に
・VC++は「必ず」最新のものを、必要になった時にSTLportと
・暇があればConceptGCCも試す
178:デフォルトの名無しさん
08/06/16 13:48:23
フェニックスシングルトンってLoki以外の他のそれ以外のBoost以外を除いたものの中にサポートされてたっけ?
179:デフォルトの名無しさん
08/06/16 14:20:27
Boost.Singleton って定期的にレビューに現れては reject されてるな
180:デフォルトの名無しさん
08/06/16 23:46:07
>>177
どうもありがとう!
181:デフォルトの名無しさん
08/06/17 20:12:12
boost.spiritって何がspiritなの?
ふざけてるの?
182:デフォルトの名無しさん
08/06/17 21:52:15
すいません、boostを巻き込むとコンパイルにえらい時が掛かるんですが、こんなもんなの?
183:デフォルトの名無しさん
08/06/17 21:53:52
つプリコンパイルドヘッダ
184:デフォルトの名無しさん
08/06/17 21:56:38
>>182
俺も高性能なPCが欲しくて仕方がない。
185:デフォルトの名無しさん
08/06/17 23:15:09
>>182
boost使い始めるとコンパイルが見る見る遅くなるんで笑った。
テンプレートを実体化するものをヘッダーに置くとすさまじく遅くなるようだ。BOOST_CLASS_EXPORTとか遅いね。cppで実体化させる様にすると速くなる。
186:デフォルトの名無しさん
08/06/18 12:37:06
xpressiveを使ったときのコンパイルの遅さとmapファイルの肥大化には思わず笑ったな
187:デフォルトの名無しさん
08/06/18 12:41:37
VSの簡易リビルドが正確だったら、この機能を使ってコンパイル時間を短縮できるのに。
188:デフォルトの名無しさん
08/06/18 12:52:46
boost.pythonちょっと試そうと思ったんだけど
単なるhello, worldにも異常にコンパイル時間かかるから断念した
これならSWIGやpyrexみたいなの使ったほうがいい
ターンアラウンド遅すぎるしコンパイラのエラーメッセージは不可解だから、
学習やおためしには不向きだな
俺みたいなヘタレは、デバッガつかってもboostのコードは追いきれる自信ねえよ
難解なマクロとテンプレートのコンビ技の嵐だし
189:デフォルトの名無しさん
08/06/18 14:59:12
boost::ptr_vector が内部に持っているポインタ配列の先頭アドレスを取得する
メソッドはあるでしょうか?
190:デフォルトの名無しさん
08/06/18 20:01:21
&V[0]とか?
191:デフォルトの名無しさん
08/06/18 20:32:13
ptr_vector の operator[] はポインタが参照するオブジェクトへの参照なので
配列のアドレス情報は含まれないはずです。
192:デフォルトの名無しさん
08/06/18 20:45:15
どういう間隔で配列が内部にあるかという情報はないの?
193:デフォルトの名無しさん
08/06/18 21:35:40
たぶん内部では boost::ptr_vector<T> pv の中には std::vector<T*> v のようなものが含まれていて
template<class T> T& ptr_vector<T>::operator[]( size_type pos ) { return *v[pos]; }
のような実装になっていると思う。
実際に欲しいアドレスは &v[0] だけど、&pv[0] とすると v[0] を得てしまう。
194:デフォルトの名無しさん
08/06/18 22:23:22
ptr_vectorの定義見ればいいんじゃね?
195:デフォルトの名無しさん
08/06/18 23:09:29
マクロばっかの追いにくいコードだったと思う
196:デフォルトの名無しさん
08/06/18 23:17:01
Boostに動的ライブラリのラッパーが追加される予定はありますか?
GLibのGModuleみたいな。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5116日前に更新/48 KB
担当:undef