[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/16 09:47 / Filesize : 198 KB / Number-of Response : 952
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Boost総合スレ part9



1 名前:デフォルトの名無しさん [2010/05/28(金) 11:49:47 ]
過去スレ
Part 8 pc12.2ch.net/test/read.cgi/tech/1251446016/
part 7 pc12.2ch.net/test/read.cgi/tech/1232367742/
part 6 pc11.2ch.net/test/read.cgi/tech/1207749841/
part 5 pc11.2ch.net/test/read.cgi/tech/1192662575/
part 4 pc11.2ch.net/test/read.cgi/tech/1175663346/
part 3 pc11.2ch.net/test/read.cgi/tech/1158991211/
part 2 pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 pc8.2ch.net/test/read.cgi/tech/1091198276/

■関連サイト■
Boost C++ Libraries
www.boost.org/

Boost 翻訳プロジェクト
boost.cppll.jp/HEAD/

Let's Boost
www.kmonos.net/alang/boost/

boost info
shinh.skr.jp/boost/

353 名前:デフォルトの名無しさん mailto:sage [2011/02/25(金) 20:22:58.92 ]
boost::wregex r(L"(.)");
boost::wsmatch m;
wstring s = L"ほげ";

boost::regex_search(s, m, r);

これで、
sub_match.hpp(429)
: error C2679: 二項演算子 '<<' : 型 'std::basic_string<_Elem,_Traits,_Ax>' の
右オペランドを扱う演算子が見つかりません (または変換できません)。
とかいうエラーがでるんですがなんなんでしょう?


354 名前:デフォルトの名無しさん mailto:sage [2011/02/25(金) 22:44:46.42 ]
>>353
boost_145@MSVC2010
エラー無し

boostのバグじゃね?
あいつらワイド文字気分で作って大してテストもしてねぇから

355 名前:デフォルトの名無しさん mailto:sage [2011/02/25(金) 23:01:29.37 ]
vs2010ならstd::wregexの方使ってみればいいよ

356 名前:デフォルトの名無しさん [2011/02/28(月) 16:34:27.96 ]
質問です。
以下ページにあるC++0x用LINQメソッドを
smellegantcode.wordpress.com/2009/01/26/linq-to-c0x/
使用した結果をBOOST_FOREACHに入れて回そうとしたのですが、
コンパイルエラーとなってしまいます。
std::vector<int> array = { 1, 2, 3, 4, 5 };
auto result = from(array).where([] (const int & n) { return (n % 2) == 0; });
auto itr = result.begin(); // 通る
BOOST_FOREACH (auto n, result) { } // コンパイルエラー
ideone.com/Iu133 (boostの環境が作れなかったのでソース閲覧用に)
iteratorのBOOST_FOREACHに対する要件が足りていないのかと思い、
iterator_adaptorやiterator_facadeを
const_iteratorに継承させたりしてみたのですが、
私がこれらをあまり理解出来ていないこともあってか
最終的にコンパイルエラーを取り除くことが出来ませんでした。
(あとtypedef const_iterator iterator;も追加してみました)
どなたか解決のヒントをいただけませんでしょうか?

357 名前:デフォルトの名無しさん mailto:sage [2011/02/28(月) 17:24:43.30 ]
>>307
例えば?

358 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 02:11:17.74 ]
>>356 エラーメッセージは?

359 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 09:41:42.85 ]
エラーメッセージ書かない時点で
答えてもらう気ないだろ

360 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 09:49:27.12 ]
boost使用時のコンパイラエラーメッセージって役に立つか?
立たないことは無いけど、異様に長いし、エラーをピンポイントで指摘してないし。
結局、行番号を頼りに修正することが多い。

361 名前:356 [2011/03/01(火) 10:40:42.97 ]
プロジェクトパス\project\boost_1_45_0/boost/mpl/eval_if.hpp:
In instantiation of 'boost::mpl::eval_if<mpl_::bool_<false>,
boost::range_const_iterator<filter<int, int, filter<int, int, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >,
pass_thru<int>, always_true<int> >::const_iterator, pass_thru<int>, main()::<lambda(const int&)> > >,
boost::range_mutable_iterator<filter<int, int, filter<int, int, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >,
pass_thru<int>, always_true<int> >::const_iterator, pass_thru<int>, main()::<lambda(const int&)> > > >':
プロジェクトパス\project\boost_1_45_0/boost/foreach.hpp:355:13:
instantiated from 'boost::foreach_detail_::foreach_iterator<filter<int, int, filter<int, int, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >,
pass_thru<int>, always_true<int> >::const_iterator, pass_thru<int>, main()::<lambda(const int&)> >, mpl_::bool_<false> >'
プロジェクトパス\project\linq.cpp:150:2:
instantiated from here
プロジェクトパス\project\boost_1_45_0/boost/mpl/eval_if.hpp:38:31:
error: no type named 'type' in 'struct boost::mpl::eval_if<mpl_::bool_<false>,
boost::range_const_iterator<filter<int, int, filter<int, int, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >,
pass_thru<int>, always_true<int> >::const_iterator, pass_thru<int>, main()::<lambda(const int&)> > >,
boost::range_mutable_iterator<filter<int, int, filter<int, int, __gnu_cxx::__normal_iterator<const int*, std::vector<int> >,
pass_thru<int>, always_true<int> >::const_iterator, pass_thru<int>, main()::<lambda(const int&)> > > >::f_'



362 名前:356 [2011/03/01(火) 11:12:03.69 ]
失礼しました。上記のがideoneのソースそのままでのコンパイルエラーです。
イテレータの解釈辺りでtypeのtypedefが無いということのようなので、
イテレータがforeachの走査対象に足る要件を満たしていないのかなと判断しました。
iterator_adaptors系を使えば良い感じに揃えてくれるのかな?と思ったのですが、
それらを用いるコードが私の理解ではきちんと書けていない状況です。

363 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 13:34:43.76 ]
日本人の貢献者ねえ・・・

cpanオーサーに日本人増えてきたらこんな事件おきたり
www.yabbforum.com/community/YaBB.pl?num=1286567562
phpが「流行」したりする謎を知らないのかな

364 名前:デフォルトの名無しさん [2011/03/01(火) 17:18:11.86 ]
Boost.Rangeを使ってみているのですが、
STLコンテナのinsert等にrangeを渡したりは出来ないんでしょうか?
begin/endを呼ぶためだけに変数に格納するのが何かおかしく感じます。

365 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 21:17:41.84 ]
>362
>イテレータの解釈辺りでtypeのtypedefが無いということのようなので、
>イテレータがforeachの走査対象に足る要件を満たしていないのかなと判断しました。
多分違う。エラーが出てるのは mpl::eval_if のところなのでここでエラーの出てる type は
mpl のメタ関数としての type だ。
あとエラーの出てる行は古いコンパイラ用の workaround のところで VC++ .NET 2002 以前を使ってる場合に
当たるんだけど C++0x 向けでラムダ式とか使ってるみたいだしなんかどっかおかしそう。

366 名前:デフォルトの名無しさん mailto:sage [2011/03/01(火) 21:25:53.46 ]
>364
コンテナにメンバ関数を追加するわけにはいかにので別途アルゴリズムが用意されてる。
www.boost.org/doc/libs/1_46_0/libs/range/doc/html/range/reference/algorithms/new.html

367 名前:356 mailto:sage [2011/03/02(水) 03:39:10.88 ]
>>365
なるほと・・、私の見当違いだったんですね。
マクロシンボルでの分岐をトレースして原因を調べてみたいと思います。
おかげで一歩前へ進めます。どうもありがとうございました。

368 名前:364 mailto:sage [2011/03/02(水) 04:08:56.10 ]
>>366
おぉぉありがとうございます!
これでbegin/endのタイプ量が激減してソース横幅も縮みそうです。
やはりきちんと用意されているものなのですね。

ただメンバ関数とは書く順番が変わってしまうのですか・・
黒魔術的な何かで何とかされているかと思っていたので少し残念です。
C++にも拡張メソッドが欲しくなりますね。

369 名前:デフォルトの名無しさん mailto:sage [2011/03/02(水) 18:19:07.50 ]
どうも1.46.1が出るっぽい
なんぞ不具合でもあったのかしら

370 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 00:50:04.85 ]
>>356
そこのconst_iteratorをstd::iterator<std::input_iterator_tag, TElemTo const>から派生させたら、
BOOST_FOREACH (auto n, boost::make_iterator_range(result.begin(), result.end()))
がコンパイル通るようになった。


371 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 02:37:10.73 ]
boost/regexで
マッチする部分をすべて取り出すことって出来ます?

boost::regex r("a[^a]+b");
boost:smatch m;
string s = "ahb anb atb";

ならahb anb atbそれぞれを取り出したいのですが。




372 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 02:49:02.95 ]
std::string::const_itarator itbegin = s.cbegin();
std::string::const_itarator itend = s.cend();
while (std::regex_search(itbegin, itend, r, m) {

itbegin = m[0].second;
}

373 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 02:53:01.08 ]
>>372
ありがとうございます。

374 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 12:25:13.55 ]
以前に
VisualStudio
の環境でダウンロードしただけで動くものをまとめてファイルにアップしてた人がいたけど
誰かurl知りませんか?

便利なのにテンプレに載ってないのはなんでです?


375 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 12:28:20.53 ]
過去ログでみつけた
boooster.x0.to/

376 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 15:31:43.47 ]
前と違って、今は公式でVisualStudio用のバイナリが配付されてるじゃん
そういえばどっかの企業もバイナリ配布してたけどやめちゃったな

377 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 17:21:36.18 ]
>>374,375
それsvnの野良ビルドだよね確か。
svn最新なので万人向けじゃないし、svn追っかける人なら自分でビルドするし、特に需要がなかったんじゃない?
あと更新される度にスパムのようにURL貼ってたのでウザがられてた。
テンプレ申請なりサイトでRSS配信なりすればよかったのにね。

378 名前:デフォルトの名無しさん mailto:sage [2011/03/03(木) 17:55:36.54 ]
bjamでビルド簡単になったんだからboostぐらいビルドしようぜ・・・
boost使う=開発環境あるわけだし。
ビルドに時間掛かるのは別w

379 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 10:17:25.38 ]
Windowsは知らないけどLinuxでBoostビルドすると風呂入って一眠りしてコーヒー飲むぐらい時間かかるんだけど・・・

380 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 10:32:46.31 ]
>>379
それってPCの性能じゃなくてOSの差なんですか?

381 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 11:54:38.77 ]
>>379
出涸らし風味な話題だけれど・・・
C2Q 6550/RAM 4GB/XP SP3(x86)/7200rpm HDDの環境で時間は忘れたけど結構掛かったな。
あまりの遅さにSSD買ってVSとboostのソースを置いてビルドしたら爆速で終わった。
仕事なら時間単価で計算すると1ヶ月ぐらいで元取れるしなw



382 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 12:44:49.19 ]
うちの場合wave, mpi, serialization, program_options辺りいらないのでビルドから外す。

383 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 12:45:41.93 ]
CPU性能ももちろん大事だけど、ストレージのランダムアクセス性能が一番影響しそうだね
数GB読み書きするでしょ

384 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 13:39:59.80 ]
その用途ならSSDよりメモリ馬鹿積みでRAMDISKの方がよさそう

385 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 15:31:35.14 ]
debugはビルドしてない

386 名前:379 mailto:sage [2011/03/04(金) 16:00:59.64 ]
俺の環境がシングルコアでへぼいというのは百も承知だが
・静的ライブラリ
・静的ライブラリ(デバッグ情報付き)
・静的ライブラリ(STLportのデバッグモードを使ったデバッグ情報付き)
・動的ライブラリ
・動的ライブラリ(デバッグ情報付き)
・動的ライブラリ(STLportのデバッグモードを使ったデバッグ情報付き)
を全部のライブラリに噛ましてやると俺のマシンは悲鳴を上げるんだぜ
情けないよな

387 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 16:26:40.23 ]
要らない情報だよねそれ

388 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 16:48:16.20 ]
>>387
つ[strip --strip-all]


389 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 17:52:40.76 ]
>>387
要らないレスすんなよ

390 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 18:23:39.74 ]
こうしてゴミレスがまたひとつ

391 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 18:30:11.33 ]
これが後世に残るゴミレススパイラルの始まりであった



392 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 18:55:41.45 ]
-jxオプションを付けてやると並列ビルドされるのでかなり高速化されるよ
並列数はCPUのコア数とクロックに応じて程々に

例:8並列の場合
bjam -j8 (以下いつものオプション色々)


393 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 19:05:54.26 ]
使うライブラリだけビルドすればいいだろ

394 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 19:12:49.58 ]
やりかた知らないんだと思うよ

395 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 19:48:33.59 ]
そうやって「俺がいらないものはいらない」で排除ばっかしてるから
ゴミレスしか残らなくなるんだろ

396 名前:デフォルトの名無しさん mailto:sage [2011/03/04(金) 20:14:20.85 ]
とはいえいきなり自分の手際の悪さを晒されましても
ゴミレス以外にどうリアクションをとればいいのやら

397 名前:デフォルトの名無しさん mailto:sage [2011/03/05(土) 02:25:40.00 ]
並列ビルドしちゃいけないわけじゃあるまいに

398 名前:デフォルトの名無しさん [2011/03/05(土) 09:06:33.90 ]
セキュリティソフトのリアルタイム検索切ってみるとか?

399 名前:デフォルトの名無しさん mailto:sage [2011/03/05(土) 21:17:22.92 ]
ゴミレスしかねぇ

400 名前:デフォルトの名無しさん mailto:sage [2011/03/06(日) 08:50:33.24 ]
>>396
馬鹿だなお前w
ゴミレスしなきゃいいじゃん

401 名前:デフォルトの名無しさん mailto:sage [2011/03/06(日) 10:17:19.96 ]
まさにゴミレース



402 名前:デフォルトの名無しさん mailto:sage [2011/03/06(日) 13:56:54.46 ]
>>374
www.boostpro.com/download/

403 名前:デフォルトの名無しさん mailto:sage [2011/03/06(日) 19:55:44.16 ]
ここ数年でこのスレの質が落ちまくってる

404 名前:デフォルトの名無しさん mailto:sage [2011/03/06(日) 21:01:09.87 ]
twitterみたいなサービス使ってると、2chはログ検索でしか使わなくなる人が多いのでは。

405 名前:デフォルトの名無しさん mailto:sage [2011/03/06(日) 21:11:49.41 ]
やっぱりTwitterの影響は大きいのかな。

406 名前:デフォルトの名無しさん mailto:sage [2011/03/08(火) 20:54:12.50 ]
boostのrandomで0以上1未満じゃなくて、
0より大きく1未満の乱数を作れませんか?

407 名前:デフォルトの名無しさん mailto:sage [2011/03/08(火) 21:17:48.07 ]
0が出たときだけもう一回まわせば良いんでね?

408 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 12:53:47.39 ]
数式クラスとかってありませんか
R言語並とはいいませんが、式の評価とか代入とか微積分とかあれば

409 名前:デフォルトの名無しさん mailto:sage [2011/03/09(水) 13:05:17.96 ]
>>408
Rを呼び出した方が早くない?

410 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 09:35:51.00 ]
boost::python で sci.py 呼ぶ

411 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 15:10:55.28 ]
boost.pythonからrpyでR呼ぶ



412 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 15:16:10.88 ]
ウェブブラウザがjavascriptでなくてc++を直に実行してくれるの出るみたいだけど
boostも使えるのかな

413 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 15:57:19.46 ]
スレ違い
hibari.2ch.net/test/read.cgi/tech/1298614677/

414 名前:デフォルトの名無しさん mailto:sage [2011/03/10(木) 16:28:00.78 ]
boost.FC++
って開発停止なの?

415 名前:デフォルトの名無しさん mailto:sage [2011/03/11(金) 12:12:04.64 ]
boost protoで無限数列作るの無理なの?

416 名前:デフォルトの名無しさん [2011/03/13(日) 06:29:13.40 ]
1.46.1
Boost C++ Libraries
www.boost.org/


417 名前:デフォルトの名無しさん mailto:sage [2011/03/22(火) 19:20:20.51 ]
Macでboost扱う場合ってVisualStudioに相当するものないの?

418 名前:デフォルトの名無しさん mailto:sage [2011/03/22(火) 20:00:51.24 ]
XCodeってのがそうなんじゃないの

419 名前:福盛俊明 [2011/03/23(水) 23:52:34.77 ]
アハ〜♪”

420 名前:デフォルトの名無しさん [2011/03/28(月) 12:47:40.42 ]
xcodeは糞だってじっちゃがいってた

421 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 19:45:09.25 ]
>>820

は?
お前ちょっとおかしいんじゃねーの?

そんな事言ったら、男はスカート履いたり口紅塗ったりしたら
いけないってこと???




422 名前:デフォルトの名無しさん mailto:sage [2011/03/29(火) 20:14:35.77 ]
どこの誤爆だよ

423 名前:デフォルトの名無しさん mailto:sage [2011/03/30(水) 12:55:32.68 ]
いいけど近くに寄るな

424 名前:デフォルトの名無しさん mailto:sage [2011/03/30(水) 17:23:19.29 ]
すごい美人になるなら、許す。

425 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 06:36:38.55 ]
ここ死んでるんでwww.boostpro.com/download/

ここみつけた。boost.teeks99.com/

426 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 06:42:18.95 ]
死んでないぞ?

427 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 06:54:32.94 ]
500 Internal Server Error

428 名前:デフォルトの名無しさん mailto:sage [2011/04/02(土) 06:55:29.53 ]
Download does not exist!
www.boostpro.com/download/boost_1_46_1_setup.exe

429 名前: ◆LLLLLLLLL. mailto:sage [2011/04/03(日) 08:55:02.65 ]
| ̄:/ : : /: : : : : : : :i: : : i: :\ : :\    \
|: / : : : / : : : : :.i: : : : |: : : :|: : : |: : : i     '
: :|: : : : |: : i: : : :|: : : /i|: : :|:| : : :|: : : |     |
: :|: : : : |: :.|:斗 十‐/ i|: :∧-‐ト|: : : |     |
: :|: : : : |イ|: :|:/ |:/   |:/ |ハ: : |: : : |  \_,ノ
: :|: : : : | レヤ示ト     rテv|:./|: : : :|
ヽ|: : : : |/{:::::::i }     トイ レ: :|/|/   関東地方 
( |: : : : 代c::ノソ     レリ |: : : : |       東北地方 北海道地方
.〈.|: : : : |x`¨       、¨x.|: : : i:|    にいる
\|i: : : :|        ,   /|: : : i:|      すべての 愛すべき 国民へ 告ぐ
∨リ\: :iト 、      `´ ィ  |: : /|リ      
‐┴―\|- 〈 >rァ 爪|V  |/
:::::::::::::::::::::::ヽ \ リ
::::::::::::::::::::::::__\
:::::::::::::::/ ::r――‐へ      rっr‐-、_
:::::::::/ :://      ∧. | ̄ ̄ ̄| | | | | ̄ ̄ ̄ ̄ ̄ ̄ ̄|..
:::/ ::/ /          ヽ|.    L|_|_ト'           |
/ ::::/  /         \   ただちに 逃げろ    |
. :::/ |/           |                 |

430 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 15:56:15.32 ]
今boostを利用してシリアライズをしようと思っているのですが
#include <boost/serialization/vector.hpp>
#include <boost/serialization/deque.hpp>
などをインクルードしようとすると
>LINK : fatal error LNK1104: ファイル 'libboost_serialization-vc100-mt-gd-1_46_1.lib' を開くことができません。
というエラーが出てしまうのです。他の
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/string.hpp>
は問題なく通るのですが・・・いったい何が原因でしょうか?

431 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 16:21:12.20 ]
事前にboostビルドしておけよ



432 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 18:36:59.44 ]
VC++ならビルド済みboostライブラリが自動インストールできると書かれていたのでそれを利用したのですが・・・

433 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 18:47:36.90 ]
libboost_serialization-vc100-mt-gd-1_46_1.libが存在する見てこい
なかったら自分でビルドしろ

434 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:07:30.14 ]
libboost_serialization-vc100-mt-gd-1_46_1.libはlibフォルダにちゃんと存在するようです

435 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:10:14.87 ]
パス通ってないだけじゃねーか

436 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:22:20.63 ]
VC++のインクルードファイルにC:\Program Files\boost\boost_1_46_1を設定するだけではだめなのでしょうか?

437 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:24:00.98 ]
インクルードパスだけじゃなくてライブラリファイルも指定しろ
ライブラリパスの方は~.libが置いてるフォルダな

438 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:43:19.64 ]
インクルードパス通ってないのになんでインクルード出来てないんだ?
それともインクルードパスは通したがライブラリパスは通し忘れた or 存在を知らないってやつか?

439 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:44:31.59 ]
ライブラリディレクトリにlibが入っているファイルを追加しましたがエラーが消えないですね・・・

440 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 19:54:50.84 ]
libが入っている「フォルダ」を指定してみて

441 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 20:44:26.30 ]
失礼、ファイルとフォルダを間違えてしまいました

おお、上手くいきました!ありがとうございました

なんか「std::streamsize' から 'size_t' への変換です。データが失われる可能性があります。」
みたいな警告が出てますけどこれは仕様なんですかね



442 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 20:46:17.09 ]
あ、これはboost/archive/binary_oarchive.hppの警告だったようです。申し訳ない

443 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 03:47:53.82 ]
誘導されてきました。
hibari.2ch.net/test/read.cgi/tech/1297142195/589
お願いします。

444 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 03:51:32.81 ]
書き忘れましたが、そのスレッドで指摘されているBOOST_PP_EQUALに数値を入れても解決されません。
コンパイラはVS2008を使っています

445 名前:デフォルトの名無しさん mailto:sage [2011/04/08(金) 04:01:00.43 ]
すみません。
#include <boost/preprocessor/comparison/equal.hpp>
をしたら自己解決しました。

446 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 13:27:19.01 ]
すみません
serializeの侵入型 非侵入型って英語でなんて言いますか?

447 名前:デフォルトの名無しさん mailto:sage [2011/04/16(土) 15:39:30.60 ]
intrusive/non-intrusive

448 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 04:24:44.07 ]
ありがとうございます!

449 名前:デフォルトの名無しさん mailto:sage [2011/04/21(木) 13:19:37.66 ]
iphoneで動かないのなんてありました?
mm経由でなんでも使えるっぽいですが

450 名前:デフォルトの名無しさん mailto:sage [2011/04/21(木) 13:31:12.82 ]
https://svn.boost.org/trac/boost/ticket/5010
微妙にダメなのかな?

451 名前:デフォルトの名無しさん mailto:sage [2011/04/21(木) 15:24:04.84 ]
BOOST_AUTO(xx , boost::fusion::list<double,int,double>(1.12, 3 ,3.4) );

エラーになる
だめなのかな



452 名前:デフォルトの名無しさん mailto:sage [2011/04/22(金) 10:52:11.38 ]
fusion便利だね
CG関連のライブラリでしか使ってるのみたことないけど
accumulaterも使ってるの?

453 名前:デフォルトの名無しさん mailto:sage [2011/04/22(金) 21:08:36.95 ]
>>452
accumulators は知らんけど Spirit がばりばり使ってる。

454 名前:デフォルトの名無しさん mailto:sage [2011/04/25(月) 15:40:13.45 ]
accumulatorに静的に代入した値って
コンパイルタイムで計算される?

455 名前:デフォルトの名無しさん mailto:sage [2011/04/25(月) 21:15:57.16 ]
void funcRef(shared_ptr<Hoge>& ref = shared_ptr<Hoge>()) {}
デフォルト引数をヌルポインタにしたい場合、これって問題ないですか?

456 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 00:21:13.07 ]
>>455
ダメですな。
codepad.org/ivr7NQAk

これならおk。
codepad.org/6cyqwPkA

457 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 04:57:15.86 ]
const shared_ptr<Hoge>& ref = shared_ptr<Hoge>()

458 名前:デフォルトの名無しさん mailto:sage [2011/04/26(火) 08:08:06.84 ]
>>456
>>457
ありがとうございます。


459 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 09:26:30.16 ]
なんでconst要るのー?


460 名前:デフォルトの名無しさん mailto:sage [2011/05/01(日) 09:32:52.23 ]
>>459
funcRef() の中でデフォルト指定された ref に値を設定することには意味が無いから、
そういうコードは書けないように言語のルールとして定められているのです。

461 名前:デフォルトの名無しさん mailto:sage [2011/05/02(月) 03:06:37.55 ]
boost.pythonを使いたいのですがセットアップ法が分かりません
環境はWindowsとGCCです
bootstrap.batを実行して、project-config.jamの内容を
using gcc : 4.6.0 ;
using python : 3.2 ;
libraries = --with-python ;
と変更してbjamを実行しましたが何かエラー(failing)が出てstage\libに何も生成されません
どなたか教えてください



462 名前:461 mailto:sage [2011/05/02(月) 03:10:54.93 ]
二箇所あるエラー内容は次のようになっています
gcc.compile.c++ bin.v2\libs\python\build\gcc-mingw-4.6.0\release\link-static\threading-multi\converter\builtin_converters.o
libs\python\src\converter\builtin_converters.cpp: In static member function 'static std::wstring boost::python::converter::{anonymous}::wstring_rvalue_from_python::extract(PyObject*)':
libs\python\src\converter\builtin_converters.cpp:436:32: error: cannot convert 'PyUnicodeObject*' to 'PyObject*' for argument '1' to 'Py_ssize_t PyUnicodeUCS2_AsWideChar(PyObject*, wchar_t*, Py_ssize_t)'

gcc.compile.c++ bin.v2\libs\python\build\gcc-mingw-4.6.0\debug\link-static\threading-multi\converter\builtin_converters.o
libs\python\src\converter\builtin_converters.cpp: In static member function 'static std::wstring boost::python::converter::{anonymous}::wstring_rvalue_from_python::extract(PyObject*)':
libs\python\src\converter\builtin_converters.cpp:436:32: error: cannot convert 'PyUnicodeObject*' to 'PyObject*' for argument '1' to 'Py_ssize_t PyUnicodeUCS2_AsWideChar(PyObject*, wchar_t*, Py_ssize_t)'

463 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 00:09:52.31 ]
Adobe って Boost使ってたんだな
俺も勉強しようかな

464 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 09:18:56.65 ]
他の人と同じ道具使いたがる男の人って・・・

465 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 16:05:30.62 ]
協調性高そうでいいよね

466 名前:デフォルトの名無しさん [2011/05/06(金) 16:19:08.01 ]
ワロタ

467 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 19:16:48.94 ]
Boostってなんで
オブジェクト.メンバ関数()
じゃなくて
関数(オブジェクト)型が多いの?

468 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 19:49:46.40 ]
性的に解決できるようにじゃない

469 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 20:30:45.77 ]
性的にねえ

470 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 21:12:51.90 ]
オブジェクトが対応するメンバ関数を持っていなくても
フリー関数ならメンバ関数がなくても「デフォルト実装」にフォールバックできる。
後から専用の処理を追加・削除しても呼び出し側はソースを編集しなくてもいい。
引数の暗黙の変換を利用することもできる。
組み込み型に対しても同じ書式を適用できる。
と色々メリットがある。

471 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 21:44:27.93 ]
public操作だけで済むなら、カプセル化の観点からも
性的外出しユーティリティが良いってメイヤーズおじちゃんがゆってた



472 名前:デフォルトの名無しさん mailto:sage [2011/05/06(金) 21:44:32.30 ]
あり^^

473 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 01:37:20.43 ]
フリー関数でもfriend使えばprivateメンバにアクセスできるしね。
実はメンバ関数は要らない子のような気がしてきた。

474 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 04:20:52.49 ]
ハーブ・サッターも非メンバ関数を勧めてるな

475 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 05:25:58.44 ]
メンバ関数ちゃんを仲間外れのするのはやめろよー

476 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 13:43:02.91 ]
プログラミング言語C++第3版でも、メンバ関数はできる限り
privateにすべし、って話があるな

477 名前:デフォルトの名無しさん mailto:sage [2011/05/07(土) 15:34:37.82 ]
もはやなんのためのOOPかわからんな

478 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 01:20:12.57 ]
構造化のために決まってんだろ

479 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 22:48:51.05 ]
メソッドを全部privateにしたらどこからアクセスするん?

480 名前:デフォルトの名無しさん mailto:sage [2011/05/09(月) 16:14:04.76 ]
>>479
インターフェースはprivateにしないとおもうけどなあ。
>>477
継承はOOPの本質じゃないんじゃないかな?
ポリモがどうしても必要なとき意外使うなって事だと思うんだけど。

481 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 01:41:27.26 ]
こんにちわ。
質問していいですか?
>>24で書いてあるような、
「この機能を使うためにはこのライブラリをリンクする必要があるよ。」
みたいな情報ってどこに書いてありますか?
公式のThreadのドキュメントみてもそれっぽいの無かったですよ。




482 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 16:10:21.87 ]
俺は英文で見かけたよ。どこだか忘れたが。
dll名でググってみれば?

483 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 20:39:49.15 ]
Boost1.46.1ちゃんのRegexをSTLPortでBuild(Linux)するとエラー吐いちゃうけどどうしたらいいの?


484 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 22:24:45.89 ]
>>482
個人で運営なさっている解説サイトとか、メーリング
リスト等には書いてあるんですけど、もう少しオフィ
シャルな情報が欲しいじゃ無いですか。

そう考えて公式サイトを読んでいたんですけど、私の
拙い英語力と集中力じゃさっぱりでした。


485 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 22:41:30.83 ]
Getting Started の Library Naming 書いてあるだろう

486 名前:デフォルトの名無しさん mailto:sage [2011/05/14(土) 22:58:08.96 ]
>>485
ありました!有り難うございます!「6.3 Library Naming」にありましたよ!!

Getting Startの最初のページの右下のNext:の部分を見逃してました。
命名規約からライブラリのファイル名を導き出してたんですね。

jamfaileのコメントとかを必死に翻訳していた自分が情けないです。
有難うございました。

487 名前:デフォルトの名無しさん mailto:sage [2011/05/15(日) 09:11:00.23 ]
Boost Graphに巡回セールスマン問題を解ける
アルゴリズムがあったら名前を教えて欲しい

488 名前:デフォルトの名無しさん mailto:sage [2011/05/15(日) 09:44:19.53 ]
>487
近似解で良ければ metric_tsp_approx

489 名前:デフォルトの名無しさん mailto:sage [2011/05/15(日) 09:45:08.77 ]
>>488
ありがと!

490 名前:デフォルトの名無しさん [2011/05/20(金) 06:15:31.08 ]
>>480
〉継承はOOPの本質じゃないんじゃないかな?

:(;゙゚'ω゚'):マジで……?

491 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 10:54:00.91 ]
ja.wikipedia.org/wiki/オブジェクト指向#オブジェクト指向プログラミングの構成要件
情報隠蔽 - これは古典的な可視性の定義である。(?)

*旧来の多くのオブジェクト指向言語が備えている性質
継承 - クラスベースのオブジェクト指向に固有の概念である。
多態性 - プロトタイプベースのオブジェクト指向の場合では関係がない概念とされる。
動的束縛 - これはオブジェクト指向の本質的な概念ではあるが、実行時性能に制約が生じる為、この特性を備えていないオブジェクト指向言語もある。

だと。



492 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 12:02:46.37 ]
で、C++でクラスベースなBoostだと何がどうだと?

493 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 12:12:29.26 ]
>>490
480ではないが、継承がやってることといえば
polymorphismの実装
基底のコードの流用
だけだからな
これらがそれぞれ別の手段で実現できれば継承はなくてもいいと思う


と俺が思ってるだけで一般的には継承はOOPの重要な要素だけどね

494 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 13:39:21.05 ]
データとアルゴリズムの論理的結合があればOOPと言える。
「動的な」結合が必要かどうかは言語によるのではないかと思う。

495 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 14:24:28.46 ]
そうだよなー。

それぞれアトミックな概念かもよく分からずに、仮想関数は静的に型付けされた動的束縛だから、仮想関数や抽象(インターフェース)クラスはC++のOOPの本質のひとつじゃね?って感じで深みにハマって結局訳わかめになる。

496 名前:デフォルトの名無しさん mailto:sage [2011/05/20(金) 15:36:30.29 ]
Data + Algorithm = Programと言えばニクラウス・ヴィルトだが、要はオブジェクトとは
データとアルゴリズムのまとまった単位、即ち一つの完結した部分プログラムであって、
それの寄せ集めが全体としてのプログラムであるという観点および方法論のことを
オブジェクト指向と呼んでいるのだと思う。
それとは別にストラウストラップがカプセル化・継承・多態性をC++言語による
オブジェクト指向サポートの基本要素としたのは一つレイヤーの上がる話だ。

// ちょっとBoostとは関係ない話になったが

497 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 04:37:29.17 ]
複数人で開発するようになると、
継承はコードが読みづらくなるから避けてほしい。

498 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 04:37:53.91 ]
IF継承は別ね。


499 名前:デフォルトの名無しさん mailto:sage [2011/05/21(土) 09:59:29.67 ]
クラス構成が仕様で決まってないってことか
問題はむしろそっちだな

500 名前:デフォルトの名無しさん mailto:sage [2011/06/02(木) 17:39:21.54 ]
boostのtrunk面白いなぁ
bjamに--without-mpi付けてたのにmpiのライブラリできた

501 名前:デフォルトの名無しさん mailto:sage [2011/06/02(木) 18:13:44.93 ]
もしかして:Jamfileのバグ



502 名前:デフォルトの名無しさん mailto:sage [2011/06/03(金) 21:52:25.68 ]
shared_ptrつかいまくりのプログラムで問題が無いか調べるにはどうしたらいいですか?
プログラム終了時に例外とメモリリークでなければOK?

503 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 00:16:10.77 ]
終了時に全部開放されてるか調べる。
終了順に依存関係があるものは設計で対応してあるか確認する。

こんなもんじゃね。楽するためのものだから、判ってて使ってるなら気にしなくていいとおもうが。
心配なら、全部resetしたらw

504 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 18:26:55.96 ]
>>503
ありがとうございます

505 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 19:04:36.62 ]
boost::shared_ptrのデリーターを一旦取り出して開放時の処理を追加してまた元に戻す、みたいな事したいんだけど出来ますか?

shared_ptr<Hoge> hoge;
HogeRegistry hogeReg;

hogeReg.insert(hoge.get()); // ライブラリの都合上生ポインタしか登録できない。ので、ここでhogeのデリーターに新たにhogeReg.erase(hoge.get())に相当する処理を追加したい



506 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 19:13:08.40 ]
HogeRegistoryをラップするクラス作った方がいいんじゃないか?

507 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 20:19:29.36 ]
そんなコンテナ捨てちまえ

508 名前:デフォルトの名無しさん mailto:sage [2011/06/07(火) 22:20:38.76 ]
っ template<class Y, class D> shared_ptr(Y * p, D d);
  Effects: Constructs a shared_ptr that owns the pointer p and the deleter d.


509 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 01:35:32.50 ]
>>505
できた。
codepad.org/rQiAg0yO

けど、 >>507 のほうが正しい気がする。

510 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 10:06:56.11 ]
>>509
なるほど、別のスマポを作ってしまうというのは盲点でした


511 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 10:20:29.14 ]
盲点て
shared_ptr捨てるとかないわ



512 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 21:33:22.84 ]
シェアポ

513 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 11:06:07.76 ]
vector<any> の中身を順番にostreamに突っ込みたいんですが,
組み込み型ならある程度typeごとに条件わけで書けるのはわかるんですが,
ユーザー定義型の場合はどうやって動的にany_castしたら良いんでしょう??
placeholderのtype()に合うように自動的にcastってできるんでしょうか.
初心者ですいませんorz

514 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 19:35:19.60 ]
>>513
作ったクラスに<<をオーバーロードすればいいじゃない

515 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 20:13:21.12 ]
>>514
初級者なのでよくわかっていないのですが,
class A; vector<any> b; b.push_back( A() );
みたいにしたあと,any_cast<A>を正しくするにはどうしたらいいのか…
せめてfor_each( any &a in b ) cout << any_cast< a.type() >(a);
みたいな事ができるといいのですが…


516 名前:513 mailto:sage [2011/06/09(木) 22:21:11.39 ]
動的にany_castする方法はわからなかったですが,
やりたいこと自体は基底にオペレータを定義して,
あとは多態性で解決できました.
できてみれば簡単でした…なんで思いつかなかったんだろう...
ありがとうございました.


517 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 23:19:22.71 ]
>513
静的な解決はできないから動的なマルチディスパッチしかない。

多態で済むんだったら、普通に基底ポインタで保持したら?

518 名前:513 mailto:sage [2011/06/10(金) 11:36:36.57 ]
>> 517
静的にはムリなんですね.そりゃそうか...
それで行きます!


519 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 00:01:56.65 ]
property_treeのiniファイルパーサーですけど、セクションとキーの文字列を
大文字小文字の区別をつけないようにできないんでしょうか?
APIのGetPrivateProfileString()は、大文字小文字の区別が無かったので
すでにあるINIファイルをこれで読み込もうとすると、大文字だったり小文字
だったりするので、設定が見つからなかったりするんです。



520 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 08:27:27.95 ]
>>519
basic_ptree の第 3 テンプレートパラメータで大文字小文字無視する比較を渡せばいいんじゃないかな。

521 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 08:36:03.92 ]
同じことだけど ptree → iptree (wptree → wiptree)



522 名前:デフォルトの名無しさん mailto:sage [2011/06/14(火) 09:04:35.81 ]
property_treeもう手放せないんだけど、-O3でバイナリが
数100k膨れ上がるのは何とかならんのか

523 名前:デフォルトの名無しさん [2011/06/14(火) 21:45:32.04 ]
>>521
やってみます!ありがとうございます。

524 名前:uy mailto:sage [2011/06/21(火) 07:11:35.99 ]
素晴らしい言語だな・・・・・


525 名前:uy mailto:sage [2011/06/21(火) 07:41:23.38 ]
【ノード】uyプログ... Part4.0【更なる未来】
hibari.2ch.net/test/read.cgi/prog/1306135242/

ゴミが積もって四スレ目

526 名前:uy mailto:sage [2011/06/21(火) 15:51:38.99 ]
ゴミみたいなスレだな・・・・

527 名前:デフォルトの名無しさん mailto:sage [2011/06/29(水) 17:25:25.50 ]
1.47期待hosyu

528 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 00:32:47.62 ]
geometry楽しみ

529 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 06:53:43.21 ]
>>528
なんも動きがないんだが大丈夫なのかアレ

530 名前:デフォルトの名無しさん mailto:sage [2011/07/02(土) 23:23:39.21 ]
新機能をブリーフィングして俺をワクワクさせろ

531 名前:デフォルトの名無しさん mailto:sage [2011/07/02(土) 23:26:20.96 ]
もうちょっとコンパイル早くしてくれませんか?



532 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 01:27:40.58 ]
TMP使うソースのコンパイルは
指示する度にうんこしてこれる

533 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 07:55:11.52 ]
Boost.CompilationFirewall

534 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 12:31:34.50 ]
マルチコアCPU使ってる場合はコンパイラオプションに/MP付ければ多少速くなるよ


535 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 08:18:42.24 ]
boostにマルチスレッド対応コンテナってある?


536 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 21:13:20.99 ]
lockfreeコンテナのことなら今レビュー中だったかな?

537 名前:デフォルトの名無しさん [2011/07/12(火) 17:23:37.47 ]
Version 1.47.0
www.boost.org/users/history/version_1_47_0.html


538 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 22:55:11.55 ]
<boost/archive/binary_iarchive.hpp>を使用すると警告が出てくるのですがこれはどうにもならないのでしょうか
インクルードしているだけで出てくるのでコードが悪いわけではなさそうですが・・・

539 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 22:56:18.32 ]
警告なら非表示にすればいいだろ

540 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 23:00:22.26 ]
んー、そうなんですけど利用したらなんかバグとか出そうで心配なのですが・・・
データが失われる可能性とか出てるので

541 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 23:07:01.70 ]
そんな餌に俺はつられんぞ



542 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 23:57:17.82 ]
いやいや、まじめに

543 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 01:29:57.03 ]
とりあえず、どんな警告が出てくるか位ははろうぜ

544 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 01:36:18.29 ]
そうですね。申し訳ない
長かったのでこちらに
ttp://codepad.org/ylgwJM88


545 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 01:38:01.28 ]
>>544
std::streamsizeってstd::size_tのtypedefだったと思うけどどうしてそれに対する警告が出てるの?

546 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 01:45:06.68 ]
さぁ・・・自分ではなんとも
boostの中を見てもさっぱり

547 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 03:24:52.14 ]
>>538,544
streamsize は size_t 以下の精度とは限らないからね。

https://svn.boost.org/trac/boost/search?q=streamsize+size_t
報告されてはいないみたいだから、 1.47 で試してまだ出るようなら Trac へ Go

548 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 14:08:54.03 ]
どうやら1.47でも出るみたいですね
・・・しかし英語ができなくて報告の仕方がわからない

549 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 16:41:24.32 ]
う〜BOOST_FOREACHって意外と遅かったのねぇ、便利だから使い過ぎてしまったよ
書き直しorz

550 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 16:48:14.75 ]
問題になるほど遅い印象はないけどな

551 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 19:51:12.74 ]
>>594
何年も前の話だけど、BOOST_FOREACH のコンパイルされたアセンブラコードを見て、
あまりのひどいコードに愕然としたことがあったよ。

以来使っていない。



552 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 00:27:44.82 ]
foreachならopenmpやtbbにもあったと思うのでそっち使ってみてはどう?

553 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 19:42:28.31 ]
そんなんあったっけ?
見当たらぬ・・・

554 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 21:51:05.85 ]
eetimes.jp/content/3156
parallel-for.sourceforge.net/tbb.html

公式ドキュメントは日本語検索だと出づらいが、サンプルコードは出てくるぞ

555 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 22:00:44.81 ]
xpressive_static.hppをプリコンパイルに入れただけでpchが40MB以上膨らんだでござる

556 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 22:03:18.06 ]
boostの中の人って頭いいのにアホなのかな
あの技術と熱意を新低級言語開発に回してたらいまごろとっくにもっと便利なもんできてただろ


557 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 22:25:23.28 ]
D言語の二の舞になるだけだろ

558 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 22:32:27.26 ]
言語の核の部分は人数多くてもしょうがない。
重要なのは汎用性と一貫性で、技術と熱意は邪魔なだけ。

低級言語ならForth最強だろ。

559 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 22:57:03.18 ]
ジェネリックな低級llvm言語、その名はclay

560 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 21:39:22.18 ]
property_treeのini_parserなんですが、XP以降だと問題ないのですが
Win2kだと正しくiniファイルが読み込めないのですが、対応してないって
ことでしょうか?


561 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 21:57:19.39 ]
どんなふうにできないのか?



562 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 22:01:58.89 ]
Boost::pythonの質問はココで良いですか?

563 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 22:18:35.25 ]
>>561
Win2kのPCにVSが入ってないんで、まだ詳しく見れてません。
ただ、現象的には、

・セクションが見つからない
・キーが見つからない
・イコール(=)の後に文字列がない

のいずれかですね。
この場合は、デフォルト文字列になるようにしてるんですが、
読み出そうとしている文字列がすべてデフォルトになっちゃってるんで。

564 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 22:07:40.02 ]
>>560
自己レスです。

Win2kの問題では無く、ファイルのパス名に日本語を含んでいるためでした。
read_iniで直接ファイル名を指定せずに、ifstreamで開いてからそのストリームを
read_iniに指定することにしました。

565 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 02:01:43.28 ]
>>556
boostより便利なものってなんだよw

566 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 04:24:22.55 ]
いい加減boost.GUIを作れよ

567 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 07:01:26.61 ]
>>565
python最強

568 名前:デフォルトの名無しさん [2011/07/24(日) 01:16:39.11 ]
>>566
やってみろ
そして、どこが「boost」なのか説明してくれ

569 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 01:20:20.78 ]
>>567
そのうちC++でboost使うほうが楽になるよ。

570 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 14:35:01.36 ]
GUIはどうすんの

571 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 17:51:44.10 ]
wxWidgets



572 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:41:46.88 ]
wxWidgets って Boost 版あったっけ

573 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:51:49.10 ]
っていうかwxWidgets使ってるとBoostいらねって思うわw

574 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 15:45:22.63 ]
c++0xのlambdaと同じ様なものは
boost組み合わせてできないものでしょうか

_1

じゃなくて

x

とか変数に使いたい

575 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 19:05:09.41 ]
shared_ptrってマクロでマルチスレッドをONOFFできるけど
ONのshared_ptrとOFFのshared_ptrを共存させるのってアリなの?


576 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 20:54:57.72 ]
>>575
ない

577 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 22:02:54.24 ]
>>574
_1 の別名として使えればいいだけなら
boost::lambda::placeholder1_type X;
とすれば X が _1 と同じように使える。
Boost Phoenix で似たようなことしつつ let 使った方がもう少し望みに近くなるかもしれない。

578 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 19:09:09.86 ]
BOOST_CHRONO_HEADER_ONLY マクロ有効にしても.libリンクしろって怒られます
date_timeとかは普通にヘッダオンリで使えてるんですけど、Chronoの場合なんか他に必要なんですか?

579 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 19:31:03.92 ]
自己解決しました
BOOST_SYSTEM_NO_LIB と BOOST_ERROR_CODE_HEADER_ONLY も有効にしたらできました・・・
もっと調べてから聞くべきだった

580 名前:デフォルトの名無しさん mailto:sage [2011/08/18(木) 11:43:35.00 ]
c++0x確定でboostもいろいろ影響うけるかな

581 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 11:13:47.94 ]
https://gist.github.com/1167135

spirit 試してみてます
上記のコードで helper って関数書かないで、
39 行目みたいにしたいんだけど、うまく書く方法ありませんか?




582 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 14:22:00.42 ]
復帰

583 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 16:25:44.13 ]
matlabとか他の計算結果を全部ublasの形式に合わせて出力してるんだが
単純に数値並べただけの方が便利だったりするのかな

584 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 21:45:43.13 ]
>>583
その計算結果の用途によるとしか……
ublasへの入力が多いならそれでいいんじゃね?

585 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 05:28:57.20 ]
もっと背景を書いてくれないと答えようがないな

586 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 03:17:50.94 ]
boostでシリアライズしてたんだけどエラーがどうしても消えなかったんだ
それでいろいろやってたら出なくなったんだがその内容が
friend class boost::serialization::access;
template<class Archive>
void serialize( Archive& ar, unsigned int ver )
{
ar & string型;
ar & string;
ar & int;
ar & int;
ar & int;
ar & int;
}
の並びを
ar & int;
ar & string型;
ar & int;
ar & string;
ar & int;
ar & int;
にしたらエラーが出なくなった。原因は何なんだろう

587 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 03:28:52.43 ]
>>586
↓こっち行け
hibari.2ch.net/test/read.cgi/tech/1187922645/

588 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 09:40:03.66 ]
>>586
エラーの内容も書かずに云々

589 名前:デフォルトの名無しさん [2011/09/01(木) 21:32:00.35 ]
boost::property_tree で要素の削除ってどうやってするんでしょうか?
たぶんeraseだとは思うんですがうまくいきません。

590 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 17:34:26.96 ]
www.kmonos.net/alang/boost/classes/asio.html
をみてasioでwebサイトからデータを取得しています
ip::tcp::iostream s( "www.boost.org", "http" );
によって作られたsはs << flush;を実行した時点で通信が開始されていると思いますが
while( getline(s, line) ) cout << line << endl;
によってデータを受信した後sを再利用するとこはできませんか?
質問するところが間違っていたらすいません


591 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 04:45:04.36 ]
boost:threadに関する質問です
スレッドを作って内部で勝手に処理させるクラスを作っています
class test {
boost::thread thr;
void start(){
thr = boost::thread(func);
}
void stop();
}
のようにして生成したスレッドのコピーをメンバ変数に保存してい置くのはまずいでしょうか
一応boost::thread(func)がスコープを外れて破棄されても動作するようですがどうなのでしょうか



592 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 08:59:00.97 ]
>>591
別にまずくはない。
boost::threadのデストラクタはdetach()を呼び出す。つまり、threadオブジェクトと
スレッドの寿命は同期していないし、スレッドが終わるまで待ってくれたりもしない。
同期させたければthreadオブジェクトを破棄する前にスレッド関数を抜けるように
フラグやcondition_variable等で指示しておき、(thread::join()等で)スレッドが終了した事を確認してから、
threadを破棄する必要がある。

593 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 14:55:53.84 ]
>>589
自己レスです。

実際には、iniファイルの読み書きで使ってるんですが、
セクションごと消すのは出来るんですが、その中のあるキー設定を
消すと、write_ini()で例外が発生してしまいます。

だれかご存じないでしょうか?

594 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 15:06:36.43 ]
>>593
さらに自己レス。

[Section]
Key1=1234
Key2=9876

と有ったときにKey2は消せるんですが、Key1を消すと、write_ini()パーサーで
例外が発生します。
これって、write_ini()のバグ?

595 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:03:55.89 ]
>>594
またまた自己レスです。

どうも、erase()またはwrite_???()がバグっているように思える。
iniパーサーでなくて、xmlやjsonパーサーでもerase()してwriteすると
おかしくなる。erase()したあと、ptreeをたどるとeraseしなかった要素は
残っているようなので、write_???()がくさい。

596 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:07:12.19 ]
コード書けや

597 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:11:17.10 ]
>>595
やっぱerase()がおかしい。earse()したあと別のptreeにコピーすると
異常が出てしまう。(clone()ルーチンで)
erase()は使えないなぁ。
これ、ptreeってmulti_index_containerですよね。そっちもバグってるってことか?

598 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:16:43.56 ]
>596

ptree pt;
read_ini("hoge.ini", pt);

ptree& n1 = pt.get_child("Section");
ptree::assoc_iterator it = n1.find("Key1");
if (it != n1.not_found()) {
write_ini("hoge.ini", pt);
}

<hoge.ini>
#=================
[Section]
Key1=1234
Key2=ABCDE
#=================


599 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:21:26.46 ]
>>598
すまん。肝心のerase()が抜けてたorz

ptree pt;
read_ini("hoge.ini", pt);

ptree& n1 = pt.get_child("Section");
ptree::assoc_iterator it = n1.find("Key1");
if (it != n1.not_found()) {
pt.erase(n1.to_iterator(it));
write_ini("hoge.ini", pt);
}

<hoge.ini>
#=================
[Section]
Key1=1234
Key2=ABCDE
#=================

600 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:51:46.57 ]
このコードでどうだろうか

ptree pt;
read_ini("hoge.ini", pt);
ptree::assoc_iterator it = pt.find("Section");
if (it != pt.not_found()) {
 it->second.erase("Key1");
 write_ini(std::cout, pt);
}

601 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 08:06:09.21 ]
>>600
おお!うまくいきました!
ありがとうございました。

なるほど、最下層の要素を削除するときはこうしないといけないんですね。
boostにも削除のサンプルを入れて欲しいな〜。



602 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 08:08:44.87 ]
常識だから入れなかったんじゃない?

603 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 09:14:40.07 ]
結局、キーの方も find()で探して、もしあれば、そのイテレータを使って

ptree::assoc_iterator it2 = it->second.find("Key1");
if (it2 != it->second.not_found()) {
 it->second.erase(it->second.to_iterator(it2));
}

として消すようにしました。
まあ、例外で受けていいのですが他の処理もあるので。


604 名前:デフォルトの名無しさん [2011/09/06(火) 11:49:02.47 ]
リンクエラーが出て先に進めないのでご存知の方がいたら教えて下さい。
環境 Visual C++ 2008
   boost Ver.1_46_0

C:\>cl /EHsc test.cpp
とコンパイルしたら
LINK : fatal error LNK1104: ファイル 'libboost_thread-vc90-mt-s-1_46.lib' を開くことができません。
と出力されました。
また、以下のサイトでlibboost_thread-vc90-mt-s-1_46.libらしきファイルをDLできたので、
\boost_1_46_0\stage\lib配下にコピーしましたが結果同じでした。
 hg.splayer.org/splayer/src/3fe3f0a75e68/lib/boost/

ソースファイルは以下のようなファイルです。

#include <iostream>
#include <boost/thread.hpp>
using namespace std;
using namespace boost;
void func(){
}
void main(){
thread threadA(func);
threadA.join();
}

ご教授お願いします。 m(__)m


605 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:58:31.75 ]
突っ込んだ所で追加のライブラリ ディレクトリに入ってなきゃダメだろ

606 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:51:54.38 ]
www.kmonos.net/alang/boost/install.html

607 名前:604 [2011/09/06(火) 14:27:03.46 ]
>>605
>>606

ありがとうございます m(__)m

自動インストーラでboost_1_47を再インストールしたあと、
vsvars32.batに
@set LIB="C:\boost_1_47\lib";C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;%LIB%
も追加したらリンク通るようになりました。

608 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 04:08:47.89 ]
www.kmonos.net/alang/boost/classes/asio.html
ではgetlineによって1行づつしか読んでいませんが
char *buf = new char[size];
s.read(buf,size);
のようにして一気に読み込みたいのですがどうすればいいでしょうか


609 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 00:07:38.37 ]
フェニックスがFC++の後継だそうだけど
いろんな意味で中途半端すぎないか
それともこれから発展していくのだろうか

610 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 01:17:16.20 ]
arrayって宣言時以外に入力するには1つずつ入れないとダメ?
面倒くさいんだけど

611 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 01:45:29.28 ]
assignとかなかったっけ



612 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 02:39:33.09 ]
おぉ、arrayにも使えたのか

613 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 21:55:59.68 ]
VS2005使ってるのですがboostが正しくインストールされてるか簡単に確かめる方法ないですか?


614 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 11:54:58.40 ]
memoizationをtemplate使って汎用に書いた関数ってなかったでしょうか

615 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 13:57:11.65 ]
pstadeのmemoizedぐらいしかしらん

616 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 10:42:28.53 ]
p-stade.sourceforge.net/oven/doc/html/index.html
これいいな
早く公式にとりこまれないかな

617 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 11:58:01.13 ]
2chの過去ログみたら
eggが誰もレビューされないでレジェクトだって?

公式の説明はどうなってるの
今ならレビューするのに


618 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 12:32:36.15 ]
>>617 ja.lmgtfy.com/?q=boost+review+egg

619 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 13:12:27.24 ]
一度レビューに上ったこともあるんだぜ。
あまりにもレビュー数が少なかったので、落とされたが。

620 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 13:38:38.71 ]
なんでドキュメント改良して再チャレンジって話にならなかったの?

621 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 15:00:38.77 ]
本人が長いこと更新してないみたいだし
誰かが本人と連盟扱いでドキュメント更新したものを再チャレンジしたらダメなのかな?



622 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 16:11:38.71 ]
VS2008ではワーニングが出なかったんだが、VS2010にすると

C4503 装飾された名前の長さが限界を超えました

っていっぱい出るんだが、どうすればワーニングが出ないようにできるんでしょうか?
コンパイルそのものは、正常終了してます。


623 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 18:19:11.04 ]
boost-coroutineはx84-64で動かないって本当ですか?
2010年にバージョンアップしたみたいですが
x84-64で動かないってコメントみかけるのが2009年より前のものばかりなので
ひょっとして改善したのかと

624 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 19:46:32.94 ]
試してみてくれ
俺も気になる

625 名前:デフォルトの名無しさん mailto:sage [2011/09/30(金) 00:13:17.37 ]
そんな事より大変だよおまえら
progress_displayさんがdeprecatedされるって

626 名前:デフォルトの名無しさん mailto:sage [2011/09/30(金) 00:52:26.07 ]
奇跡のような存在だったからな。

627 名前:デフォルトの名無しさん mailto:sage [2011/09/30(金) 07:13:20.60 ]
progress_displayさんはboostの癒しキャラ
技巧凝らしたソースばかり見ていたら疲れるだ

628 名前:progress_display mailto:sage [2011/09/30(金) 21:19:30.73 ]
みんな反対してよ(´;ω;`)

629 名前:デフォルトの名無しさん mailto:sage [2011/09/30(金) 21:26:13.06 ]
progress_displayに
呼び出し元プロセスとの進捗状況をやりとりする機能を実装し
そのプロトコルも規格化したりすると延命できるのかな。

630 名前:デフォルトの名無しさん mailto:sage [2011/09/30(金) 21:34:09.65 ]
progress_displayやprogress_timerの実装に使われてる大元のBoost.Timerの刷新のついでだからどうしようもないな

631 名前:progress_display mailto:sage [2011/09/30(金) 21:57:09.32 ]
何でみんなそんなに冷静なのっ!?



632 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 08:36:25.31 ]
来るべき時が来たって感じだから…

633 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 10:52:59.90 ]
この際eggやovenをだな

634 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 13:07:50.36 ]
レビューがBoostConと重なったためにまともに評価されなかったんだよね>egg
どう考えてもovenの方がrangeexより優れてる筈なのに・・・どうしてああなった

635 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 13:51:24.87 ]
|をパイプ処理に使う仕様とかはqtみたいな言語のサブセット的な巨大フレームワークを構築してその中に隔離しておいてくれ

636 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 09:54:06.59 ]
oerator |  
の定義って斬新だな
フェニックスも大概独自世界構築してるけど| の方がわかりやすくてええわ

637 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 11:06:36.24 ]
俺はうげーってなるから止めて欲しい

638 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 13:11:45.27 ]
シェルのパイプからの発想なんだろうけどC++で順序に意味のある結合に|を使うのは一般的になって欲しくない

639 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 20:59:58.34 ]
同感

640 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 19:22:39.08 ]
>>633
>eggやoven
boostライセンスだから
作者の許可なしで「改良したもの」をboostに提案しても問題ない予感がするのだが
もちろん作者の名前も入れる

641 名前:progress_display mailto:sage [2011/10/04(火) 19:50:11.11 ]
・・・



642 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 20:34:30.64 ]
返事が無い
ただのdeprecatedのようだ

643 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 20:37:41.95 ]
誰かが作ったのを別人が改良というのはよく見るから
改良したらいいんじゃないの?

644 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 19:12:35.16 ]
progress_display って、なんだかんだでみんな一度は使うよね

645 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 19:13:37.47 ]
boostの親善大使だから

646 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 19:17:28.31 ]
そうだったのか。。

でも確かに、親善大使という言い方に、しっくりくるものを感じる。。。

647 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 00:55:35.76 ]
まぁ初めてboost触る人にSpirit薦めるわけにはいかないしねぇ
俺はlexcal_castから入門したけど

648 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 04:42:44.99 ]
誰もが一発でわかる最も簡単なboost
noncopyableをよろしく

649 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 07:18:53.85 ]
BOOST_FOREACHがいいんじゃないか

650 名前:やんやん ◆yanyan72E. mailto:sage [2011/10/06(木) 10:42:50.54 ]
BGLから入った俺は変態ですか?

651 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 11:15:42.53 ]
俺はshared_ptrとregex



652 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 12:00:49.57 ]
俺はtokenizer

653 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 13:05:24.59 ]
filesystemから入ったかなぁ

654 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 13:17:38.99 ]
randomだったと思う。

655 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 13:19:25.53 ]
和訳されてる書籍にあるライブラリしか使えん

656 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 14:35:14.08 ]
scoped_arrayからかな・・・auto_ptrの配列版探していて知った

ところでprogress_displayを実用した著名ソフトってあるのかしら

657 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 14:59:48.03 ]
google code検索で検索してみよう

658 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 19:29:22.00 ]
>>656
めっちゃ有名なライブラリで使ってるよ。

Boost C++ Libraries

659 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 23:55:45.01 ]
一番最初につかったのが、progress_displayだわ
まぁLet'sboostみながら一番わかりやすそうだったからってだけだが

660 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 10:59:06.69 ]
意外にもformatが挙がらないな

661 名前:progress_display mailto:sage [2011/10/08(土) 01:20:12.74 ]
私の後継に相応しい者はいないようだな
これではまだまだ親善大使を退くわけにはいかんう・・・



662 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 17:22:29.70 ]
早くprogress_display2.0を作る作業に戻るんだ

663 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 17:38:11.23 ]
Boost.Timerv2に対応したprogress_displayです!!!1111
みたいにboost.develに投稿してまずはsandbox入りを目指そう

664 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 17:54:54.35 ]
表示処理部分を差し替え可能にすればなんとか・・・

665 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 19:09:47.22 ]
誰か>>629とMPIにも対応させてくれ

666 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 20:21:58.06 ]
そしてboost.interprocessに吸収されるわけですね

667 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 00:26:41.87 ]
bjamこそprogress_display使うべきじゃね?

668 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 16:49:04.00 ]
filesystemのwpathってなんでdeprecatedなの?

669 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 16:51:32.26 ]
ごめん自己解決
pathそのものが両方サポートしてるのね。

670 名前:デフォルトの名無しさん [2011/10/25(火) 14:09:17.02 ]
「boost::this_thread」っていう名前空間の「this」ってどんな意味なのでしょうか?
どなたかご存知です?


671 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 14:12:05.06 ]
このスレ



672 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 14:16:33.54 ]
>親善大使
簡単にスレッドを使いたくて調べてたらboostにあたった。
boost::thread は非常に簡単でいい。

「boost::this_thread」っていう名前空間の「this」ってどんな意味なのでしょうか?
どなたかご存知です?


673 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 14:24:37.71 ]
>>670
"this"の意味は「この」。
"this_thread"で「このスレ」。

674 名前:672 mailto:sage [2011/10/25(火) 19:21:41.47 ]
>>620
あれ?2回も投稿してるし、しかもageてるよ。申し訳ない。

>>671, >>673
ありがとうございます。
助かりました。
説明もらって、Webで見つけたサンプル達を眺めたら理解できました。

675 名前:672 mailto:sage [2011/10/25(火) 20:36:08.22 ]
連続で失礼!
どちらかというと、Boostというより、C++のクラスについての質問になります。
よろしくお願いします。

ttp://melpon.tank.jp/pukiwiki147/index.php?Memo%2F%CB%DD%CC%F5%2FBoost.Thread
↑この辺り( Boost.Thread )を読んで試したりしているのですけど、
 boost::this_thread sleep()  ※Static member function sleep()
 boost::this_thread::sleep()  ※Non-member function sleep()
の二つのsleepがあるじゃないですか。それぞれ、
 指定した時間になるまで、現在のスレッドをサスペンドします
 指定した時間が経過するまで、現在のスレッドをサスペンドします
と若干引数の扱いが違いますが、似ています。

threadクラスの中に入れたのと、外(this_thread)に入れたのとで、どのように使い分ければいいのですか?
「中断ポイント」として、利用されるのが前者、程度の違いでしょうか?
何か他に大事なことを知らない気がしています…。



676 名前:672 mailto:sage [2011/10/25(火) 21:33:35.07 ]
ミスった
×boost::this_thread sleep()  ※Static member function sleep()
○boost::thread sleep()  ※Static member function sleep()

677 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 18:00:45.65 ]
property_treeのINIパーサーだけど、XMLパーサーみたいに書きこむときに
コメントを再現できないんだろうか?
今は無視して読み飛ばしてるみたいだが。


678 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 18:05:26.87 ]
コメントなんて読んでどうすんだ

679 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 20:51:44.73 ]
boost::thread のスレッドが動いているか、それとも終了しているか、を自作の関数を用いないで確認する方法ってあります?

680 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 21:20:35.33 ]
timed_join

681 名前:679 mailto:sage [2011/10/31(月) 02:40:46.69 ]
>>680
!!そうかっ!
感動した!
ありがとうございます。



682 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 00:34:42.48 ]
既存のクラス
namespace Hoge {
struct Fuga // 独自にカウンタを持つ
{
int count ;
int add_ref(void);
int release(void);
};
}
があってintrusive_ptrを使いたいんだけどnamespace Xに追加禁止の場合は
グローバルスコープにintrusive_ptr_add_refとintrusive_ptr_releaseを書くしか無い?
なにかうまい回避策とかあるのかな


683 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 01:47:51.17 ]
>>682
namespace に追加禁止の意味がわからん。

684 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 01:54:37.13 ]
Xってどこだよ、おいといて、>>682でHogeの中に置けないならnamespace boostに置く

685 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 06:59:20.82 ]
ttp://melpon.tank.jp/pukiwiki147/index.php?Memo%2F%CB%DD%CC%F5%2FBoost.Thread#x68e5715
「Thread Constructor」の説明に書いてある、「*this」って何のことか説明もらえたりしませんか?
呼ばれる関数内でthisとか書いてもthreadのインスタンスメソッドとか呼べないのですけど…。
さっぱりわかりません。


686 名前:685 mailto:sage [2011/11/02(水) 07:33:33.34 ]
あ、何か急にわかりました。
スレ汚し失礼しました。

687 名前:685 mailto:sage [2011/11/02(水) 14:26:44.40 ]
>>675
ttp://melpon.tank.jp/pukiwiki147/index.php?cmd=read&page=Memo%2F%CB%DD%CC%F5%2FBoost.Thread#ldd60c2a
これみると、後方互換性のために存在する感じのように見える。
「// 後方互換性のため」のスコープがどこまでなのかがハッキリしないが、たぶん後方互換性に含まれるんだろ。
ちなみに、boost1.47のヘッダみたら、「static」の方の引数の変数名が「this_thread」にあわせられていた。
確信無いので参考までに。

688 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 20:59:30.05 ]
もう少しよく見ればthread::yield/sleepがthis_thread::yield/sleepを呼び出してるだけなのがわかっただろうになあ

689 名前:679 mailto:sage [2011/11/05(土) 06:15:53.53 ]
join()・timed_join()(成功)・detach()を複数回実行した時の動作は未定です?
timed_join()を繰り返して、起動した全てのスレが終了したか検知するコードを書いて今はうまく動いているのですけど、
幾つかのスレが終了している最中に、もしも別のスレが起動したらどうなるのかな?デタッチした領域は開放されているから再利用される可能性があるかな?なんて考えて…。
それとも、スレの起動箇所ごとに、アタッチするメモリ番地が決まってるのかな。
そうすると、forやwhileで起動する際に説明がつかないし…。
未定か。

690 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 11:36:39.78 ]
なに言ってるかわからないがたぶん心配してるようなことにはならないだろ。基本的なところを勘違いしてるように思える。

691 名前:689 [2011/11/06(日) 22:23:39.49 ]
>>690
レスありがとうです。

スレッド周りのヘッダとcppと読んでみたのですけど、あまりわかりませんでした。
スレッドが終了したかどうかって、Win32 APIとどのようにやり取りするのかわからないのがマズイ気がする。
先は長い…。

ところで、さっきと今との、経過時間をmillisecで取得したいのですけど、Boostを利用すると比較的容易な気がするのですが、どのクラスを利用すればいいでしょうか?
boost::posix_time付近で探しているところですが。



692 名前:689 mailto:sage [2011/11/06(日) 22:34:54.18 ]
ageてしまいました。すみません。
Win32APIでみつけることができました。GetTickCountで差分をとればいけそうでした。

もしBoostで、同じようなことが出来れば御教示ください。出来れば環境依存は少ない方がいいと思いますし。

693 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 22:45:34.52 ]
boost::timer

694 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:13:37.80 ]
chrono

695 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 06:41:56.52 ]
いつもチンコ?って思っちまう

696 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:34:26.68 ]
半年くらい前までは[スマポ]で検索するとスマートポインタのサイトがずらっと出てきたのに
今出てこなくなってるな
こういう新しいものが出たときにもともとあった情報の取得の障害になることをなんていうんだろうね

697 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:36:23.99 ]
産業革命

698 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 17:54:00.58 ]
シャドウイング

699 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:56:57.82 ]
オレオレ略語使いの憂鬱

700 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 12:34:52.49 ]
スマポなんて初めて聞いたぞ

701 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 12:38:10.56 ]
ナマポは生活保護か生ポインタか



702 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 15:27:47.67 ]
むしろ誰も使ってなかったからグーグル先生の超推理でスマートポインタにヒットしてたんだろ。

いまは使われるようになったからな。

703 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 18:32:09.00 ]
>>696
10年以上前の話だがCの関数をググれてたのが
PHPに占領されたときは殺意を覚えた

704 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 18:42:18.38 ]
>>696
いまは「スマ」と打つとsmileageが出てくるように・・・まだなってないか

705 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 20:10:00.06 ]
clangが規格に忠実すぎてBootのソースがコンパイルできん。

706 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 07:45:19.68 ]
JOSN用モジュールってありますか?

707 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 12:43:22.14 ]
>>705
コンパイルエラー晒せ。
直接バグレポートするともっといい。

708 名前:デフォルトの名無しさん mailto:age [2011/11/15(火) 22:07:44.75 ]
>>706
JSON?
boost::property_tree

boost::property_treeを使ってXMLを読み込んでみるコードを書いてるのですけど、
hoge.piyo.fooの要素が複数存在する可能性がある仕様の時、何個あるかしらべるには、foreach使って全て読み込んでみないとわからないですか?
mapのsize()のような関数って無いでしょうか?

709 名前:デフォルトの名無しさん [2011/11/16(水) 01:35:08.82 ]
Version 1.48.0
www.boost.org/users/history/version_1_48_0.html


710 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 05:45:06.58 ]
boost に gettext 相当のものってありますか?

711 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 06:01:45.60 ]
>>710
ちょうどBoost.Localeが入ったぞ



712 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 09:45:15.35 ]
フェニックスってコンパイルは遅くなるけど
実行時間はふつうにfor文かいたりするのと変わらないの?

713 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 12:20:42.65 ]
>>706
ttp://anon21.qlookblog.net/20110717-1.html


714 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 01:58:09.28 ]
Windowsでstd::locale("en_US.UTF-8")すると死ねますか?

715 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 01:59:23.32 ]
たぶん無視されるだけかと

716 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:49:42.72 ]
>>712
うん。gccレベルのコンパイラでも最適化オプションつけるとfor文展開と変わらない。
最適化しない場合は知らん。

717 名前:デフォルトの名無しさん [2011/11/17(木) 14:52:45.35 ]
1.48.0 released

718 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:59:38.87 ]
Boost.Containerの詳しい解説たのむ
主にflatシリーズ

719 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 17:27:47.13 ]
> 主にflatシリーズ
ソート済みvector使った擬似setや擬似mapあるだろ。つまりそれ。

720 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 18:56:20.37 ]
b2 ってのは bjam と同じなの?
1.47.0 から変わったみたいでコンパイルがよく分からなくなった

それと、オプションの toolset は -- がいらなくなったの?

721 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 19:35:49.47 ]
boost::interprocess::detailから
boost::interprocess::ipcdetailに仕様が変わってるんだな
コンパイルエラー吐かれて初めて気付いた



722 名前:やんやん ◆yanyan72E. mailto:sage [2011/11/17(木) 20:16:14.19 ]
俺はbootstrap.shでtoolsetなどのオプションを指定して
b2でコンパイルという感じでやってるけど、
b2をbjamと同じように使うこともできるみたいだね。

723 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 20:28:23.12 ]
>>719
ありがと

724 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 13:41:41.76 ]
VC++2008でエラーになる・・・
boost.moveが原因くさい

#include <boost/unordered_map.hpp>

int main()
{
struct data_type
{
boost::unordered_map<int, int> a;
};

data_type a;
const data_type b;
a = b;

return 0;
}


725 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 16:32:03.78 ]
Why don't you write your version of boost.

726 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 18:19:04.28 ]
>>724
boostの使用以前にエラー。
クラス型のconstオブジェクトを初期化子なしで初期化する(default-initialized)ときは
そのクラス型はユーザー定義のデフォルトコンストラクタを持っていなければならない。

727 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:45:24.66 ]
property_treeのxml_parserでencodingをutf-8にして
文字列データに日本語を含ませるとunexpected end of dataという例外が飛んできます
utf-8のxmlを読み込むにはどうすればいいんでしょうか?

728 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 20:46:15.79 ]
data_type a;
data_type b;
a = static_cast<const data_type&>(b);
でもエラーになるな。

729 名前:727 mailto:sage [2011/11/18(金) 20:47:18.46 ]
あ、ちなみに環境はwindows7でVC++EE2008
boostのバージョンは1.46.1です

730 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:38:19.46 ]
>1.46.1です

731 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 02:13:30.33 ]
>>724
C++03でのmoveのエミュレーションの限界であり仕様
ttp://www.boost.org/doc/libs/1_48_0/doc/html/move/emulation_limitations.html#move.emulation_limitations.assignment_operator



732 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 02:53:37.99 ]
>>726

733 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 04:00:51.16 ]
moveエミュレーションってOFFにできないの?

734 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 08:18:33.39 ]
>>726は規格準拠の動作。VC++で出るべきエラーが出ないのはいつものことなのでお察しください

735 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 13:13:26.51 ]
よくわからんけど>>728が通らないっていろいろ問題でないか?

736 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 14:04:06.67 ]
std::mapに変えてcodepadで試したけどエラー出なかったぞ

737 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 15:16:38.02 ]
>>726はclangとかで試せばエラーになるだろうけど
とりあえずboostとは関係ないし軽く流せよ

738 名前:デフォルトの名無しさん [2011/11/19(土) 16:22:22.43 ]
へえ

739 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 17:02:27.30 ]
>>733
1.47とか古いboost使えば

>>735
boost1.48のコンテナを使うならdata_typeに必要なメンバを追加すれば通るようにはできる

>>736
どういう話だ。
>>724,728が言いたかったのはboost1.48のコンテナを使ったときの話でstd::mapでは再現しない。
>>726が言ってるのはこういう話 ttp://codepad.org/wc7uBetz。

740 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 17:02:36.69 ]
Boost.Containerのパフォーマンスに期待

741 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:12:47.21 ]
>>730
治りました!
ありがとうございます



742 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:40:41.25 ]
Visual C++向けのboostのlibのディレクトリを覗くと、
 (1)boost〜.dll
 (2)boost〜.lib
 (3)libboost〜.lib ※:〜の部分は同じ
という3種類のファイルがあるのですけど、それぞれ何なのですか?

何となく、(3)が静的リンクなライブラリの本体で、
(1)が動的リンクなライブラリの本体で、(2)が(1)向けのインポートライブラリかなぁなんて考えたのですが、
どうして静的と動的と両方あるのだろうか?と考えると、さっぱりわかりません。
boostって静的リンクじゃないのですか?

743 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 08:38:29.93 ]
どこでダウンロードしたやつだ
公式じゃないよな?

744 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 10:05:05.07 ]
インストーラ配布してるとこがあるじゃん
んで、boostライブラリにはダイナミックリンクとスタティックリンクの2種類があるよ
ファイルの区別は>>742の通りで間違い無い

もう少し詳しくいうと、末尾に-sgdが付いているのがデバッグCRTスタティックリンク型(/MTd)、
-sが付いているのがCRTスタティックリンク型(/MT)、
-gdが付いているのはデバッグCRTダイナミックリンク型(/MDd)、
何も付いていないのがCRTダイナミックリンク型(/MD)
その他命名規則の詳細はこちら
www.boost.org/doc/libs/1_48_0/more/getting_started/windows.html#library-naming

745 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 07:27:35.14 ]
実際スタティックリンクの方が速いな
ダイナミックリンクはどうしてもコールゲートを通すのでリングレベルの移行など
CPUで処理すべき仕事が多く相当速度が落ちる

速度とサイズのトレードオフか
でもDLLやsoもメモリ内に読み込むのでサイズが小さいとも言えないし
同時に走らせるプログラムが多くなってきた時だけ違う

746 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 07:44:52.93 ]


747 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 11:36:28.84 ]
dllでコールゲート通らないし
しかもリング変えるのにコールゲートとかいつの話だ

748 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:13:15.70 ]
聞いたことある単語を適当に並べてみただけって感じの文だな

749 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 12:14:32.91 ]
ダイナミックリンクでコールゲートを通すような処理系を教えてくれよ

750 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 16:19:33.53 ]
リンク時の最適化が効かない以外はあんまかわらんかね

751 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 00:57:26.19 ]
コールゲートが必要なのはカーネルだけだろ。
カーネルの場合は、ゲートとなるアドレスが記述されていて、
そこへ飛ぶとメモリー空間がユーザー空間からカーネル空間へ変わる。
通常のDLLは、ユーザー空間にコードマッピングして、関数テーブルを
そこのアドレスに書き換えてるだけ。



752 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 21:03:45.95 ]
助けてください ><
boost::tupleのメンバ関数get<N>をboost::lambda::bindで束縛するにはどうしたらいいでしょう?

下記のコードでは、

error: invalid static_cast from type ‘<unresolved overloaded function type>’ to
type ‘int (*)(const boost::tuples::tuple<int, int, boost::tuples::null_type, boost::tuples::null_type, ....

と言われてしまいます。

get<N>のテンプレート周りかなと思うのですが。。

using namespace boost::lambda;
int r;

r = (bind(
static_cast<int(*)(const boost::tuple<int,int>&)>( &boost::tuple<int,int>::get<0> ),
_1)
) (boost::tuple<int,int>(1,1));


753 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 21:43:07.29 ]
static_cast<const int&(boost::tuple<int,int>::*)()const>(&boost::tuple<int,int>::get<0>)
メンバ関数がどんな型になるか勉強しなおしたほうがよさそう

754 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 22:03:39.03 ]
>>753
ありがとうございます!
いろいろとカン違いしていました。
返り値型がconst int &というのも言われてみればなるほどで、
自分はまだまだ勉強が足りないですね。。

755 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 00:07:39.70 ]
read_xmlでunicodeが読めないのですが仕様ですか?
引数にマルチバイト文字しか受け付けないし、
文字コード宣言があるXML文書のパースを
ロケール指定して使うproperty_treeに依存するとかあほですか

756 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 16:11:45.03 ]
yes

757 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 22:45:17.23 ]
boost.spirit.qiでセマンティックアクションから、
一致したruleのrangeを示すiteratorが欲しいのですがclassicを使うしか方法はないのでしょうか?
例えば、以下の様にしたいです。

void action(Iter first, Iter last){ ... }
//...
(char_('(') >> *char_('0') >> char_(')'))[action];

758 名前:デフォルトの名無しさん mailto:sage [2011/11/25(金) 22:48:13.14 ]
ptreeはutf8一択と心に決めて使うものだし

759 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 13:15:59.82 ]
tupleってfusionよりメリットある部分あるの?

760 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 15:08:01.25 ]
機能が少ない分全貌を把握しやすくてとっつきやすい。
TMPに馴染みのない人がfusionの説明見たら引くでしょ。

761 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 20:56:08.16 ]
そしてtupleのソースコードを読んで引く



762 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 20:58:58.39 ]
俺なんかanyですらやや引きだぜ

763 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:23:12.42 ]
any使えて嬉しいことって人生で一度でもあればいいほうだよね

764 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 21:25:13.00 ]
>>753
オレオレ言語作るときに使えないか期待している。
しかし、まだ俺にそのスキルはない。。。

765 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:43:23.40 ]
ヘッダをプリコンパイルヘッダーに突っ込んでも遅い。
みんなどうやってんの?

766 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:45:44.67 ]
PCを買い替える

767 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:49:14.99 ]
それどころかヘッダファイルをRAMDISK上に置いても遅い
極限までOCするとちょっと速くなる
結局並列ビルドが効く様な構成にしてその上でクロック周波数を極限まで上げるしかない
後はメモリアクセス速度とCPUのキャッシュ容量も効いてくるかもな

768 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 02:26:15.97 ]
boostのヘッダー1個、boostを使うソース1個でも十分遅いからな。

769 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 08:09:02.14 ]
64bitにする

770 名前:デフォルトの名無しさん [2011/11/28(月) 09:48:46.81 ]
多倍長整数型の一桁ずつをint型の配列に入れるために、
多倍長整数型をまずstringに代入し、一桁ずつの分割をして、それをboostでint型に変換してみようとしています。
つまり、charを使わないで
多倍長整数→string→string一桁ずつ→int
の変換をしたいのです。
お尋ねしたいのが、string→string一桁ずつの変換をどのように行ったらいいのかということなんです。
もしわかる方がいらっしゃるなら教えていただけると嬉しいです。

771 名前:770 mailto:sage [2011/11/28(月) 09:55:53.46 ]
>>770に補足で、言語はc++です。



772 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 10:14:46.90 ]
基数のべき乗で割ったあまり使えば?

773 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 10:16:56.88 ]
>>772
言われてみればそうやれば簡単にできそうですね

774 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 03:44:49.48 ]
OpenMPのような並列ライブラリってありますかね?
素直にboost::threadですかね・・・

boost Proの全自動インストーラーのほうが便利ですね
入れるなら

775 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 21:24:52.86 ]
boost.fusionあたり使ってstd::vectorだろうが構造体だろうが
かたっぱしからオブジェクトのメンバーをprintしてくれる
debug関数みたいなのないですか

776 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:04:42.91 ]
grep のことかな

777 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 18:27:57.73 ]
デバッガでウオッチすればいい

778 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 19:10:34.41 ]
シリアリズしてstd::cout

779 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 01:45:36.46 ]
シリアライズのコードぱくれば作れそうだな

780 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 12:42:57.64 ]
boost::this_thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(1));
boost::this_thread::sleep(boost::posix_time::milliseconds(1));
↑ふたつって、意味は同じ?
それとも、下側のソースは、基準になる現在時刻がないから、最低の時間(オーバヘッド)のsleepになる?
どういうルールでどのテンプレートが利用されるのかが理解できないです。
よろしくおねがいします。
…boostスレに書いたほうがいいです?(過疎ってるみたいなのでこちらに書いてみました。)

>【初心者歓迎】C/C++室 Ver.76【環境依存OK
>>836 @ 2011/11/30(水) 10:57:59.02
でも同じ質問を書きましたのでマルチです。1week経ったので引っ越しました。

781 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:53:52.11 ]
boostのメルセンヌ・ツイスタを自作のアプリケーションに使用した場合にも
「著作権表示、ライセンス条文、無保証の旨」を書かないと駄目なんでしょうか?
それとメルセンヌ・ツイスタに限らずboostを利用する際にライセンスに関わる注意点はありますか?






782 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:34:29.67 ]
>>781
random/mersenne_twister.hpp を見るとライセンスがwww.boost.org/LICENSE_1_0.txtであるとわかる。
バイナリ配布にあたってはライセンス同梱は必要ないようだが、
mersenne_twister.hpp込みでソースを配布するならライセンス表示、同梱は必要だろう。
これはboost全体に言える。

783 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:44:24.56 ]
>>782
ありがとうございます
ヘッダを見ればよかったんですね

784 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 20:15:47.01 ]
>>780
> boost::this_thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(1));
> boost::this_thread::sleep(boost::posix_time::milliseconds(1));
> ↑ふたつって、意味は同じ?
意味は違うがよっぽど変な状況でないかぎり結果は同じ。

this_thread::sleepには指定した日時まで待機するのと指定した期間の間待機するのと二種類ある。
上側は指定した日時(たとえば01時23分45秒まで。上の例だと現在時刻の1ミリ秒後)まで待機するもので
下側は指定した期間(たとえば1秒間。上の例だと1ミリ秒間)待機するもの。
どっちになるかは引数の型で決まる。

785 名前:デフォルトの名無しさん [2011/12/15(木) 07:47:16.25 ]
Boost.Regex って、UTF8 テキストに対して使えますか?
例えば、"." を検索すると”あ”等のマルチバイト文字にマッチするのでしょうか?


786 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 07:48:07.75 ]
使えない

787 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 12:25:20.07 ]
ダメじゃん

788 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:51:07.46 ]
馬鹿には無理

789 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 06:51:38.22 ]
Boost.Anyなんて使うならLuaを組み込んだほうがまし

790 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 03:53:05.45 ]
variantやanyを使って実行速度遅くするなら
工夫してunion使った方がマシな気がする
実行速度を落さないunionの拡張はboostにないのだろうか

791 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 08:49:08.27 ]
>>790
素の union で何が不満なの?



792 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 10:41:49.00 ]
unrestricted union使うぐらいならvariantでいいや

793 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 13:59:33.58 ]
boost::array<int,5> arr = { {1,2,3,4,5} };


arrayで要素数を省略した初期化って現状不可能ですか?



794 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 17:48:55.48 ]
微妙に意味がわからないがテンプレートをインスタンス化するときの<int,5>の5の省略は不可能(おそらくずっと)

795 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 18:12:16.28 ]
要素数の後決めしたいとか、array使う意味が皆無になるんだが。

796 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 18:51:36.87 ]
やっぱり不可能ですか、、、
後決めしたいというより、ただただ書くのを省略したいだけなんですがね。。。

797 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 19:16:16.71 ]
>>796
#include <iostream>
#include <boost/array.hpp>
#define ARY(t, n, ...) \
static const t n ## _[] = {__VA_ARGS__}; \
boost::array<t, sizeof (n ## _) / sizeof (n ## _[0])> n = {{__VA_ARGS__}}
int main()
{
ARY(int, arr, 1, 2, 3, 4, 5);
std::cout << arr[2] << std::endl;
return 0;
}

省略できてもあまり嬉しくなかった。

798 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 19:45:18.04 ]
int a[] = {1, 2};
のような事をしたかったってことなんだろうね

799 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:56:46.18 ]
まさにそれをしたかった。なぜそうしなかったかというと、境界チェック付きの
配列を使いたかったから。

800 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 21:55:20.06 ]
別スレで同じこといってるやつみたけど
結局boost使うことにしたのかな

801 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 12:54:36.97 ]
ublasってopencvより遅い気がするのだけど気のせい?
ublasの方が速い場合ってエクスプレッショナルテンプレートが効く場合だけ?
gccのコンパイルオプションで同じぐらいの速度にならないものだろうか



802 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 14:50:46.10 ]
>>797
どうでもいいがプリプロセッサの
可変長引数でコンパイルエラー
世の中C99対応のコンパイラばかりではない


803 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 14:54:39.38 ]
>>801
分岐の少ない問題でOpenCVがublasごときに負けたら
OpenCVの存在意義が無くなると思うが?
OpenCVはGPUを使って数百の並列実行してるんだからな。

804 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 21:00:18.40 ]
lexical_cast ってスレッドセーフ?


805 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:45:04.63 ]
corutineはそろそろ正式リリースしてくれないものか

806 名前:progress_display mailto:sage [2012/01/08(日) 15:36:56.20 ]
明けましておめでとうございます。
挨拶が遅くなり申し訳ありませんが、今年も何卒宜しくお願いいたします。

807 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 13:20:18.76 ]
>>806
開けましておめでとうございます。

ところで、後でちょっとお話がありますので、
会議室を1時間くらい予約しておいてください

よろしく

808 名前:progress_display mailto:sage [2012/01/09(月) 14:36:31.42 ]
>>807
やだ課長、1時間は短いですよぉ

809 名前:Regex mailto:sage [2012/01/09(月) 17:52:20.64 ]
>>808
打ち合わせどうだった?
何言われたの??

810 名前:boost::tuple mailto:sage [2012/01/09(月) 20:23:36.80 ]
さてと、C++11への引っ越しを始めるとするか・・・。

811 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 20:26:00.89 ]
corutineがいろいろ改変されたのあって
どれが一番いいのかわからない
x86 amd64 のwindows linux mac で動けばいいのだけど



812 名前:progress_display mailto:sage [2012/01/13(金) 23:37:40.00 ]
@typeに登録しておこう(´;ω;`)

813 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 23:51:00.44 ]
shared_ptrってスレッドオフしてallocate_sharedすればintrusive_ptrとパフォーマンスたいして変わらんっすよね?

814 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 05:42:46.00 ]
shared_ptrのサイズはポインタ二つ分。
共有管理オブジェクトにはweak_ptr用のカウンタもある。
大した違いかどうかは場合による。

815 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 09:35:55.06 ]
メモリ intrusive_ptr
生成破棄 intrusive_ptr
参照カウント増減 shared_ptr

816 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 15:11:46.99 ]
ttp://www.boost.org/doc/libs/1_48_0/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html
自分で定義した(例えば多倍精度浮動小数点数)型を数学関数内部でも使える様にするにはどうすればいいですか?

817 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:51:54.60 ]
ttp://www.boost.org/doc/libs/1_48_0/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html
やったことはないがその型に対してこれ↑を満たすように必要なものを自分で書けばboost::mathでその型を使えるんだろ

818 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 03:32:32.30 ]
void func2( boost::array<int, 3> & c)
{
c.assign( 0 );
}
error: invalid initialization of reference of type ‘boost::array<int, 3ul>&’ from expression of type ‘const boost::array<int, 3ul>’

arrayを参照引数にできないんだっけ?

819 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 07:59:21.04 ]
>>818
おまいはエラーメッセージも読めんのか?

820 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 08:58:09.76 ]
ああ!constついてました

821 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 05:12:42.79 ]
boost::fusion::list a の先頭要素が
a.begin()
で参照できないのがちょっと気持ち悪い



822 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 23:49:52.05 ]
bjamの利点がわからないのですが、autoconfとかを用いずbjamを利用してるのは何故でしょうか?

823 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 00:18:21.01 ]
POCOとほとんど同じ機能持つライブラリ
ありませんか?

824 名前:デフォルトの名無しさん mailto:age [2012/02/02(木) 16:01:00.05 ]
ubuntuでboost入れたら一瞬でインスコ完了で使えるようになった
一方、Windowsではサイズがでかい上にビルドにかなり時間がかかる。
この差はなんでつか?ちなみにWindowsではVCで使う感じです

825 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 16:32:49.79 ]
apt-get とかでパッケージをインストールしたんのなら、既にバイナリが含まれてるからだろ。

826 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 17:06:15.79 ]
なるへそ
Windowsでは全部落としてきて自分でビルドしたからか

827 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 01:20:40.57 ]
>>823
なんでpoco不可?

828 名前:デフォルトの名無しさん mailto:age [2012/02/03(金) 08:07:34.00 ]
ポコチン

829 名前:デフォルトの名無しさん mailto:age [2012/02/05(日) 22:05:47.61 ]
ちんぽこ

830 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 23:10:55.09 ]
ちんぽこ商用ライセンスだと制限きついしなぁ

831 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 00:01:35.59 ]
VC2010 Essentialsを使っています。
boost::serializationを使うと、アプリケーションを作成するためのプロジェクトでも
.libと.expを作ってくれるようになるのですが、これを抑制する方法はないでしょうか?



832 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 00:02:11.18 ]
ちんぼ

833 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 01:54:03.78 ]
っぽ

834 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 02:07:40.85 ]
ぬるぽ

835 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 12:57:55.72 ]
>>831
前に別のライブラリで同じ症状に遭ったことがあるけど、解決策見つからず

本当にどうしても嫌なら、ビルド後のプロセスでdelするとか・・・

836 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 15:29:48.48 ]
libが生成されるってことはエクスポートテーブルもできてるんだから
ファイルを消せばいいってもんじゃないだろ

どこかで間違えて__delcspec(dllexport)が定義されてるんだろうね

837 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 18:34:24.22 ]
serializationがらみで
ttp://codepad.org/bp6RCbxw

boost::shared_ptrのシリアライズコードを改造して、std::shared_ptr用の物を書いたのですが、
コレにカスタムデリータのサポートを追加するいいアイデア無いでしょうか?


838 名前:デフォルトの名無しさん mailto:sage [2012/02/09(木) 22:45:06.20 ]
poco高すぎだろ
pro買わないとネットワーク系全滅だし

839 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 12:34:22.38 ]
>>824
linuxでC++やるときってエディタ何使うんですか
emacsのタグジャンプの設定で苦労した覚えが
今はもっといいのあるんだろうか

840 名前:デフォルトの名無しさん mailto:sage [2012/02/10(金) 17:27:39.08 ]
現在Boostのthreadを使って、ワークパイルを管理するクラス、各スレッドに付随するクラス(ワーカーとします)を作っています。
ワーカーは仕事を一通り終えた後、管理クラスが終了許可を出すまで「待ち」を行うようにするため、mutexとconditionを用いています。
管理クラスが終了許可を出せば「待ち」が解除されてスレッドとして動作していた関数を完了するのですが、待ちが解除されるときにmutexにロックがかけられてしまいます(それより前でmutexにロックはかけていない)。
そのため、ワーカーが破棄されるときにmutexでunlock()関数を使わないとエラーが生じます。

ワーカーで行いたいことは通知が来るまで待つだけで、排他制御の必要はありませんが、わざわざunlock()を使わなければならないのでしょうか。
イメージ的にはconditionにmutexを渡さないwait()があれば期待通りになりそうなのですが、それは存在しません。

よろしくお願いします。また私の解釈に間違いがあれば指摘いただけると幸いです。

841 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:10:52.17 ]
待つだけでいいならミューテックスでもいいのでは…そういう話ではない…?
#include <iostream>
#include <boost/thread.hpp>
#include <unistd.h>
void f( boost::mutex* guard )
{
std::cout << "worker: working" << std::endl;
std::cout << "worker: waiting until the mutex was unlocked" << std::endl; guard->lock();
std::cout << "worker: finished" << std::endl; guard->unlock();
}
int main()
{
boost::mutex m;
std::cout << "main: lock a mutex" << std::endl; m.lock();
std::cout << "main: create a worker" << std::endl; boost::thread worker(&f,&m);
std::cout << "main: sleeping 3 seconds" << std::endl; sleep(3);
std::cout << "main: unlock the mutex" << std::endl; m.unlock();
std::cout << "main: waiting for join" << std::endl; worker.join();
std::cout << "main: finished" << std::endl;
return 0;
}

$ ./sample
main: lock a mutex
main: create a worker
main: sleeping 3 seconds
worker: working
worker: waiting until the mutex was unlocked
main: unlock the mutex
main: waiting for join
worker: finished
main: finished



842 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 17:00:53.33 ]
>>841
返信ありがとうございます。
管理側は仕事追加・終了許可時に、ワーカーのインスタンスそれぞれのメンバー変数であるconditionでnotifyすることで待ちを解除させています。
ワーカーは、管理側が仕事を追加すると通知を受けて仕事を開始するためにwhileループ内で待ちを行っています。(終了許可待ちと仕事待ちは共通のconditionとmutex)
void Worker::run() {
 while (true) {
   TaskData* task = NULL;
   while (_taskBag->getTasks(&task)) {
     job(task);
   }
   if (_finishable && _taskBag->numTasks() == 0) {
     _mtx.unlock();
     break;
   }
   _cond.wait(_mtx);
 }
}
ワーカーが複数いるので、mutexロック解除で待ち解除の通知を行うと、「仕事追加→いずれかのワーカーが仕事に着手」の後にmutexの所有権が管理側に戻ってこないかもしれないので難しそうです。
まぁ実装の仕方次第でmutexだけでもいけそうですが。

あとよくよく考えると_cond.wait(_mtx)の時に暗黙的に_cond.wait(mutex::scoped_lock(_mtx))のようになっているんでしょうか。
となると、ロックがwait解除後に再度かけられてしまうのはある意味当たり前ですね。

申し訳ありません。簡潔な文章で伝えるのがもの凄く難しいですねw

843 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 07:46:49.88 ]
waitにはmutexをロック済みのunique_lock渡す必要がある。直接mutexをwaitの渡せているのはたぶんVCのせい。
unique_lockのローカル変数を作ればunlockを呼び出す必要は無い。
condition_variableは他の変数と一緒に使うことが前提。
waitはnotifyの通知以外でも誤って解除されるのでbool変数などと合わせて使わないとだめ。
bool変数で確認するからにはmutexでの排他制御が必要。

844 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 09:57:29.58 ]
>>843
ありがとうございます。
排他制御が要らなく見えていたので、待ちの実現だけにcondition、mutex両方を使うことに冗長さを感じていたのですが、conditionはそもそも単体では使わないものなんですね。

ちなみに_cond.wait(_mtx)の記述はXcode4.2でもできています。C++の引数1つの場合の暗黙的なコンストラクターですね。
こういう場合に暗黙的にできてしまうと見落としてしまう場合があって危険だと感じます。

845 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 11:57:41.20 ]
>>844
それじゃあboostのバージョンが低いだけじゃないの?一時変数は非const参照に拘束できない。

846 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 19:45:57.66 ]
>>845
Boost 1.48です。ちなみに上記の_mtxはワーカークラスのメンバー変数です。

847 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 19:55:58.52 ]
>>846
そうか。あとはコードを実際に追わないと分からないわ。

848 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 07:34:07.70 ]
boost::asioの非同期通信でhttpクライアントつくろうと思ってasync_read_someでデータ取ってるんだけど、何故か5kbくらいでデータが途中で切れちゃうんだ
誰かピンとくる人居ないか…助けてくれ

849 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 01:04:19.29 ]
>>848
async_read_until使えば?

850 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 15:40:45.11 ]
今作成中のプログラムに<boost/thread.hpp>と<boost/thread/condition.hpp>をインクルードすると、システムのlocale_facets.tccとboostのshared_count.hppにおいて大量のエラーが発生します。
これらのファイル自体には問題は無く、何らかの依存関係でエラーが出ているんだろうということは想像がつくのですが、全く原因がわかりません。

何かこのような現象について心当たりのある方は居られないでしょうか。

Xcode4.2で、ヘッダーサーチパスには/opt/local/includeを(boostはこの下にインストール)設定しています。ライブラリーファイルのリンクも行っています。

よろしくお願いします。

851 名前:デフォルトの名無しさん [2012/02/15(水) 19:46:15.26 ]
>>850ですが、自己解決しました。申し訳有りません。

原因はboostを使っているソースファイルとは別のファイル内で定義した「swap」という名称のマクロでした。
それぞれのソースファイルを最終的にmain関数で参照する形となっていたためにboost内の何かとマクロ名が衝突したようです。

自分で定義したswapをユニークな名称に変更することで解決しました。

今後どなたかの参考になれば幸いです。



852 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 19:49:52.51 ]
こらたかし!マクロは全部大文字にって言ったでしょ!

853 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 21:30:41.91 ]
さすがにswapをマクロ名にするのはないな

854 名前:デフォルトの名無しさん [2012/02/15(水) 22:26:50.21 ]
cpp側なら問題なかったのですが、実装も含めたヘッダーに書いてしまったのが盲点の原因でした...

855 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:40:49.07 ]
気が、狂っとる

856 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:45:19.13 ]
君は優秀な人材だぜひマイクロソフトに就職しなさい

857 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:53:13.67 ]
>cpp側なら問題なかったのですが
よくねぇよ。
規格にちゃんと、

「標準ライブラリーのヘッダーをincludeする翻訳単位は、全標準ライブラリーヘッダーで宣言されている名前を#defineもしくは#undefしてはならない。」

と書いてある。
だから、ひとつでもどれか標準ライブラリーのヘッダーをincludeしたならば、swapという名前は#defineも#undefもできない。

858 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:06:42.94 ]
min
max

859 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:27:50.00 ]
>>857
swapって名前標準ライブラリーにあるの?

860 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:29:27.19 ]
あぁalgorithmにあるのか。使ったこと無かったわ。

861 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:29:55.03 ]
嘘だろ…



862 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:34:09.02 ]
iostreamをインクルードするだけで使えるというのに・・・。

863 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 23:44:50.77 ]
>>859
名前だぞ名前。
クラスのメンバーにも等しく適用されると何故わからないんだ。
多くの標準ライブラリのクラスがswapという名前のメンバーを持っているのを知らないのか。

864 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 00:11:46.32 ]
>>858
MSは禿にごめんなさいしないといけないよね

865 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 03:25:04.66 ]
C++にテンプレートが無い様な時代から既に用意されてたんだから
後出しのハゲが謝りお願いすべき

866 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 03:49:30.66 ]
小文字が入ってるマクロ名は紛らわしいから
コンパイラが警告吐いてくれたらいいのにな

867 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 07:22:59.71 ]
assertみたいなマクロ実装関数で警告が出ることになるか
ところでassertをキーワードに昇格させて定数式なら
コンパイル時エラー出す設計にはできなかったのかな
そうするとstatic_assertと書き分けなくて良いような気もするけれど

868 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 12:13:03.95 ]
例によってCとの互換性が

869 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 12:38:53.66 ]
staticの方はともかくassertってあんまし使わなくねーか?

870 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 12:38:56.08 ]
iOS開発でObjCのコンテナクラス類使わずにどうもSTL/boost多用してしまうんだけど
果たしてこれはよくないのかどうか・・・

871 名前:デフォルトの名無しさん [2012/02/16(木) 15:37:52.34 ]
threadのwaitってどこのサイトみても

while(!ready) {
 cond.wait(lock);
}

のようになっていますよね。これを起こす場合には
ready = true;
cond.notify_all();
とすると思うのですが、while分の!readyを判定してからcon.waitをかけるまでの間に上記の起こすコードが呼ばれた場合には、動かなくなってしまう気がします。

これを回避する方法などあるのでしょうか。timed_waitでしょうか。



872 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:47:36.71 ]
>>871
cond.wait(lock);でロックを要求している素晴らしい設計を無視するなよ

873 名前:デフォルトの名無しさん [2012/02/16(木) 19:01:27.73 ]
>>872
ありがとうございます。
よくよく考えてみるとwhile文の前と起こすコードの先頭でミューテックスをロックすればいいんですね。
今まで引っかかっていたものがスッキリとれました!

874 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 21:10:13.56 ]
>>872,873を理解するまで1時間かかってしまった

875 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 18:51:24.80 ]
1.49出たのに反応なしか

876 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 01:31:34.53 ]
小学生並みの発想だな

877 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 14:05:48.47 ]
中学生並みの反応だな

878 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 21:26:03.54 ]
大学生並の考察だな

879 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 22:17:31.08 ]
院生並の皮肉だな

880 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:36:14.79 ]
社会人並みの判断だな

881 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 23:51:07.07 ]
年金生活者は余裕だな。



882 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 00:00:44.76 ]
病院生活並の苦労だな

883 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 09:58:05.77 ]
世捨て人並の達観だな

884 名前:デフォルトの名無しさん mailto:sage [2012/03/07(水) 18:03:57.16 ]
銀河皇帝並みの独断だな

885 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:18:09.27 ]
原子核級の大志だな

886 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 14:27:31.51 ]
風俗嬢並の偏屈だな

887 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:11:07.28 ]
俺並みの性欲だな

888 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:46:18.10 ]
風説の流布

889 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 02:29:45.81 ]
痛風の呂布

890 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 09:45:46.39 ]
風呂の風俗

891 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 18:41:57.17 ]
温泉の効能



892 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 20:16:36.14 ]
駄レスがスレをboostする!

893 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 23:11:17.86 ]
歌舞伎町の893

894 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 23:36:25.70 ]
ゲスの極み

895 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 23:45:41.65 ]
お肉の厚み

896 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 00:07:56.91 ]
boostってC++11の要素は取り込みはじめてるの?

897 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 00:33:35.99 ]
C++11がBoostを取り込んだの間違いだろ
Boost.Moveのことなら知らん

898 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 00:37:49.12 ]
Boost.Chrono とかは C++11 からの逆輸入。

899 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 00:49:09.56 ]
既存コンパイラで動くようにしてくれてるならいいことだ

900 名前:デフォルトの名無しさん mailto:sage [2012/03/13(火) 00:46:51.29 ]
◆ 便利な今までに出た風説の流布一覧
伝説の流川
伝説の呂布
解説の掛布
風疹の漁夫
ふーてんの流浪
妖鳥の流布
入れ墨の鯨布
風の谷の呂布
骨折に湿布
聖教新聞の配布
電設の鈴木
通風の湿布
テンセルの毛布
テンソルの分布
ピンサロの主婦
風雪ながれ旅
風雪の露天風呂
風俗で炉利
風俗の幕府
風てんのトラ
温泉の掛川
風の谷のナウシカ
季布の一諾
空席の椅子
秀策の棋譜
特攻の拓
ピンフの20符

901 名前:progress_display mailto:sage [2012/03/19(月) 23:18:49.04 ]
最近おれっちの話が出来ていないが、C++11先取りしておれっちを実装するコンパイラってまだ出てきてないの?



902 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 20:20:56.52 ]
serialization を使ったときに、exe ファイルにいろんなシンボルがエクスポートされるのを防ぐ方法ってないでしょうか?

903 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 11:34:46.67 ]
仕様です

904 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 06:51:48.14 ]
>>901
あれ、あなた風の噂で左遷されたって噂を聞いてたけど・・・?

905 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 19:36:20.60 ]
boost::optional<int> test () { return 1; }

void func {
if (auto i = test() && i.get() != -1) {
return ;
}
}
これコンパイル通らないけどどうして?

906 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 20:00:01.39 ]
funcの定義

907 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 20:16:53.92 ]
void func () {
      ↑

908 名前:デフォルトの名無しさん mailto:sage [2012/04/11(水) 21:59:09.93 ]
>>905 エラーメッセージ見ろよ。

909 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 00:58:06.25 ]
>>906-908
そこじゃなくて
>if (auto i = test() && i.get() != -1) {
俺が言いたいのはこっちのほうだった
auto i = test()この段階で初期化されてるはずなんだけどどうして無理なんだろう

910 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:05:06.21 ]
>>909
規定された条件部の文法↓にマッチしないから。
condition:
  expression
  attribute-specifier-seq/opt decl-specifier-seq declarator = initializer-clause
  attribute-specifier-seq/opt decl-specifier-seq declarator braced-init-list

911 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:25:55.07 ]
>>910
そもそも規格上無理なのね
ありがとう



912 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 16:18:52.52 ]
テンプレートクラスのメンバ関数を、
boost::threadとboost::bindで呼び出して、別スレッドで動かしたいのですが
うまくいきません。ご教授願います。

template<class T>
class TestClass : public T
{
public:
TestClass(void) : T() {}
};

class TestBase
{
public:
void print(TCHAR *str){ cout << str << endl; };
};

typedef TestClass<TestBase> MyTestClass;

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR *char str = _T("test");
MyTestClass myTestClass;
myTestClass.print(str); // 正常に動作

boost::thread myThread(boost::bind(&MyTestClass::print,str)); // ←コンパイルエラー
// c:\Program Files\boost\boost_1_47\boost\bind\mem_fn.hpp(333): error C2296: '->*' : 無効な左オペランドです。

}

913 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 17:52:34.92 ]
>>912
boost::bindでクラスのメンバ関数ポインタを拘束した場合、第一引数はそのクラスのインスタンス(かインスタンスのポインタとか)になる
boost::bind(&MyTestClass::print, myTestClass, str)

914 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 18:08:58.52 ]
>>913
ありがとうございます。無事にコンパイルが通りました。

915 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 19:19:10.20 ]
boost::threadを使って、メンバ関数ではなくて、
クラスそのものを別スレッドで動かしたい場合は、どのように指定すればよいでしょうか?


916 名前:915 mailto:sage [2012/04/21(土) 20:04:05.95 ]
boost::threadに渡せるのは関数ポインタだけなのかな?
boost::threadにクラスのコンストラクタを渡せば、そのクラスは別スレッドで動いてくれるのかと思ったけど
勘違いでしょうか?

917 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 20:54:52.22 ]
クラスが動くってなんだ?
・・・って関数オブジェクトのことか?
関数オブジェクトのインスタンスを渡せばそのoperator()を別スレッドで実行させることはできる

918 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 21:32:08.83 ]
>>916
具体的にどんなコードを書きたいのかここに出したほうが良いと思う。


919 名前:915 mailto:sage [2012/04/21(土) 21:36:19.05 ]
ウインドウクラスをクラス化したので、
そのクラスを別スレッドにして、プロシージャなどの処理をしたかったんです。

とりあえず、グローバル関数作って、その中でクラスのインスタンスを作って、
boost::threadでそのグローバル関数を呼び出す形にしてみました。
いちいち関数を作るのも面倒なので、無名関数でやってみようかな。
無名関数使ったことないけど。

920 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 02:06:07.47 ]
JavaやFlashで使われている、イベント/リスナーをC++で実現したいのですが、
boostを使ってできますでしょうか?

921 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 02:13:52.12 ]
>>920
イベントはシステム側の要求でとある時に「この処理をどうします?」ってプログラマに聞くことなのでそれは可能。
で、リスナは結局デリゲートかなんかに処理をキックする機構なので、
例えばバインドなどでインスタンス関数をイベントに渡したりしたとして、そのインスタンスの寿命がなくなって無効になるタイミングをコントロール出来れば可能だろう。

と、言うわけでできなくは無いけど、GC無いからそこをどうにかしないと難しいと思う。



922 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 18:39:55.58 ]
boost::graphについて質問です。
例えば、RPGゲームのマップ移動の最短経路を求めたいとします。
ただしマップを通過できるかどうかは条件があって、
・一定のキャラクターレベルを超えていないと通れない
・特定のアイテムを所有していないと通れない
などの条件があります。

私の考えたチープなやり方では、propertyでマップノードごとにRequireLevel、RequireItems
などを持たせて、
レベルによってグラフノードの書き換えをする関数、
DisableGraphByLevel(graph,characterInfo);
アイテムの有無によってグラフノードの書き換えをする関数、
DisableGraphByItem(graph,characterInfo);
などを処理してから、グラフに対して最短経路アルゴリズムを実行するという形です。

ただ、これだと処理後に毎回グラフを元に戻さないといけないし、
条件がより複雑なものが追加されるとこの形では対応できません。
それに第一、スマートではありません。
boostっぽく処理するにはどのように設計すればよろしいでしょうか?

923 名前:やんやん ◆yanyan72E. mailto:sage [2012/04/26(木) 02:13:10.40 ]
www.boost.org/doc/libs/1_49_0/libs/graph/doc/dijkstra_shortest_paths.html
これの、distance_mapとか、distance_compareとかdistance_combineとかを
うまく定義すれば、グラフを書き換えなくても望みの動作をさせられるんでない?

924 名前:922 mailto:sage [2012/04/27(金) 14:45:37.73 ]
>>923
ありがとうございます。参考にして見ます。

boostを使うだけでなく、boostの中身を理解して、自分でアロケーターだとか
イテレーターとか作ってみたいと思っているのですが、
やんやんさんのように高度に詳しくなるには、どういった書籍やサイトがお勧めでしょうか?
よろしければ教えてください。

925 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 18:41:03.11 ]
document嫁

926 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 22:27:30.41 ]
>>905
if (auto i = test() && i.get() != -1) {

auto i = test() && i.get() != -1;

auto n = test() && i.get() != -1;
auto i = n;

多少構文をばらしてみれば無理なの解るだろ

927 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 22:29:18.96 ]
>>920
boost::functionとboost::bindと、なんかブロードキャストするクラスか
なんかがあったから、それ組み合わせりゃ楽にできるよ

928 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 22:43:36.06 ]
>>924
興味があるところから入っていって、もっと知りたいと思ったら勝手に詳しくなるもの

929 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 23:47:34.23 ]
>>920
boost::signals2はどうだろ

930 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:07:51.46 ]
<boost/thread.hpp>をインクルードすると下記のエラーが出ます。
どうすればいいでしょうか?
開発環境はVC++ 2008/2010 WinXPです
ソースコードは
metalphaeton.blogspot.jp/2011/04/boostthread.html
ここにあるものをそのまま使いました

1>c:\program files\boost\boost_1_47\boost\thread\win32\basic_timed_mutex.hpp(160) : warning C4793: boost::detail::basic_timed_mutex::unlock': ネイティブ関数としてコンパイルされました:
1> マネージ コードでサポートされていない組み込み型が見つかりました
1>c:\program files\boost\boost_1_47\boost\thread\win32\thread_primitives.hpp(314) : warning C4793: boost::detail::win32::interlocked_bit_test_and_set': ネイティブ関数としてコンパイルされました:
1> マネージ コードでサポートされていない組み込み型が見つかりました
1>main.obj : warning LNK4248: 未解決の typeref トークン (0100001F) ('boost.detail.win32._SECURITY_ATTRIBUTES') です。イメージを実行できません。

931 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:31:14.34 ]
>>930
本当にC++ですか?



932 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 07:07:29.09 ]
>>930
C++/CLIはC++じゃありません

933 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 12:40:42.28 ]
C++/CLIではthreadはうまく動かない

昔いろいろやってコンパイルだけはできるようになったけど、結局動くことはなかった

934 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 13:07:13.78 ]
C++/CLIはスレッド出来る。.NETとおなじ機能。
C#でも不可能と言うことになる。

935 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 15:37:34.03 ]
.NETのVMのスレッド用API機能とWin32のスレッド用API
混在してもまともに動く気がしない

936 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 15:43:05.54 ]
>>934
933の言っているのはboost threadの話。
boostスレだからboostは省いたんだろう。

937 名前:デフォルトの名無しさん [2012/05/25(金) 18:04:12.87 ]
spirit::qiで質問なんですが、Attributeを捨てることって出来ないんでしょうか?
stringを返すruleを使うと、一番上までstringを返さないと存在しないAttribute(string)にアクセスしようとして
不正落ちしてしまいます。
パース中に使用し終わって、解析後にまで残す必要ないものなので捨てたいんですが・・・

あとついでに
>>757
www.boost.org/doc/libs/1_49_0/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html
このディレクティブを使えばiterator_rangeを受け取れるようです

938 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 09:10:19.76 ]
VisualStudio 2010 でboost::filesystem::directory_iterator の leaf() を使いたいんですが
Version 1.36 では使えません、どのバージョンなら使えますか。
もしかして、まだ、未対応ですか?

939 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 09:14:06.80 ]
2年前に1.42で使ってたきがした。
少なくてもその辺以降なら使えるんじゃないだろうか。

後は詳しい人よろしく

940 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 09:26:54.17 ]
leafって名前変わらなかったっけ?


941 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 10:10:51.40 ]
>>938 です
thx です。
ごめんなさい、バージョンを間違えていました。
boost_1_46_1 でした。が、leaf() って使えないんですね?

<boost/filesystem/fstream.hpp> を調べると
#if BOOST_FILESYSTEM_VERSION == 2
# include <boost/filesystem/v2/fstream.hpp>

# else
Visual Studio 2010 ではundef になっています?
leaf() ってboost/filesystem/v2/fstream.hpp に入っているようなので
どうしたら使えますか?



942 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 10:26:23.13 ]
自己解決しました
マクロできってやるだけで、V2使えました。

943 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 18:33:25.03 ]
leafはpathに名前変わった
ってもう見てないよね

944 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 23:13:13.00 ]
path().filename() だろ

945 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:15:07.24 ]
boost.intrusive

でコンテナに同じ要素を2つ以上登録するのってできないの?
lets boostの例で同じ要素追加しようとしたらエラーになった

lst.push_back(*pa);
lst.push_back(b);
lst.push_back(c);
lst.push_back(*pa); ここでおかしくなる

946 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 11:28:56.17 ]
auto d = *pa;
lst.push_back(d);

しよう

947 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 11:38:00.10 ]
>>945
できない。仕組み考えればわかるだろ
class hoge
{
hoge *prev;
hoge *next;
int value;
}
みたいな構造でprevやnextに自分自身のポインタを入れてリンクの終端を探して探索すれば無限ループになる

948 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 21:50:25.15 ]
boost::interprocess::shared_ptrってプロセス間通信用の名前空間に入ってるけど、
DLLの入出力なんかに使ったら、常にexeとdllで同じバージョンに保っとかないと
クラッシュするよね。なんで:interprocessの中に入ってんの?

949 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 23:31:39.75 ]
>>948

それをいうならshared_ptrに限らず異なる領域にあるモジュール間の通信に使うものは
双方のモジュールで互換性のあるものを使わないと問題がでるけど。
(必ずしも同じバージョンの同じライブラリを使う必要はない。そのほうが単純に楽で確実性が高いだけ)

それとBoost.'Interprocess'は名前どおりのプロセス間通信用に限定されたものでなくスレッド間通信用のライブラリでもある。

950 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:18:05.21 ]
>>949
やっぱダメなんやね。
外から見るとテンプレートで型安全。
内部ではvoid* で保持。
実装ははpimplでDLLに配置ってな感じで
自前でスマポ作らないと安全な仕様は無理か。


951 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:45:31.07 ]
両方自前ならknown/rquest versionのやり取りするだけじゃん?








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<198KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef