1 :デフォルトの名無しさん2010/05/28(金) 11:49:47
2 :デフォルトの名無しさん2010/05/28(金) 11:51:08
■関連書籍■
Boost C++をチューンアップする最先端ライブラリ
http://www.amazon.co.jp/exec/obidos/ASIN/4894714191/

Boost C++ Libraryプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4798017043/

Beyond The C++ Standard Library
http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/

C++ Template Metaprogramming
http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/

The Boost Graph Library
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/

■関連スレ■
C++相談室 part81
http://pc12.2ch.net/test/read.cgi/tech/1273407971/

C++0x 9
http://pc12.2ch.net/test/read.cgi/tech/1269623636/
4 :デフォルトの名無しさん2010/05/28(金) 21:38:34
boost.fiber をビルドしたのですが、以下のエラーがでてビルドできません。
解決策を教えて下さい。

C:/lib/boost/boost_1_42_0/libs/fiber/build\pyutils.jam:2: in load
rule PYTHON_IMPORT_RULE unknown in module pyutils.
C:/lib/boost/boost_1_42_0/tools/build/v2/kernel\modules.jam:283: in modules.impo
rt
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:903: in import
libs\fiber\build\Jamfile.v2:14: in modules.load
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:313: in load-jamfile
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:62: in project.load
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:763: in project.use
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:89: in load-used-proj
ects
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:73: in load
C:/lib/boost/boost_1_42_0/tools/build/v2/build\project.jam:168: in project.find
C:/lib/boost/boost_1_42_0/tools/build/v2\build-system.jam:553: in load
C:\lib\boost\boost_1_42_0\tools\build\v2/kernel\modules.jam:283: in import
C:\lib\boost\boost_1_42_0\tools\build\v2\kernel\bootstrap.jam:142: in boost-buil
d
C:\lib\boost\boost_1_42_0\boost-build.jam:17: in module scope
6 :42010/05/30(日) 10:57:08
>>4
fiber\build\Jamfile.v2の
14行目の import pyutils ; を消す。
29行目の [ pyutils.linkage ] を "WindowsPE" に変更。
53行目の [ pyutils.architecture ] を "i386" に変更。
(pyutils.py の実行結果を直で書いた・・・)

で解決しました。
8 :72010/05/31(月) 11:47:01
いろいろ試してみたところ
> io::stream_buffer<io::array_source> sb(io::array_source(buf));
が関数プロトタイプと解釈されている事が原因のようです。
これは言語的に正しい解釈なのでしょうか?
9 :デフォルトの名無しさん2010/05/31(月) 20:37:37
>>8
Yes.
Effective STL に載ってる有名な落とし穴。
10 :72010/06/02(水) 11:10:46
>>9
io::stream_buffer<io::array_source> sb(io::array_source buf);
という風に解釈されるんですね。
遅くなりましたがありがとうございました。
11 :デフォルトの名無しさん2010/06/07(月) 15:35:41
すみません質問です。

VisualStudioの2008と2010が入っている環境でboostをビルドしたところ、msvcのバージョン指定しない場合は「〜vc100〜.lib」等が作成されました
VS2010でサンプルアプリケーションを作って実行したところ正常動作を確認したのですが、欲しかったのはVS2008用のため、msvcのバージョンを指定してビルドしたのですが、
「〜vc〜.lib」というファイルが出来あがり、VS2008でサンプルアプリケーションを作って実行したところ「〜vc90〜.lib」が見つからずエラーとなりました

古いバージョンのビルドでバージョン表記を付けてビルドするにはどうすればいいんでしょうか。

参考にしたURLこちらで、バージョン指定のビルド時は「--toolset=msvc-9_0」を指定しました
http://www.kmonos.net/alang/boost/build.html
13 :デフォルトの名無しさん2010/06/07(月) 17:33:04
うおおおできたぁあああああああ!!!

有難うございます助かりましたm(_ _)m
15 :デフォルトの名無しさん2010/06/09(水) 03:06:45
質問お願いします。

ublasで

A=[B~t C^t]~t A,B,Cはベクトル

  Y 0 0
X=[0 Z 0 ]  X,Y,Z,Wは行列
  0 0 W

この時のB,CやY,Z,Wが存在していてそれを元に
AやXを作成したいのですが良い方法はありますでしょうか?s
19 :デフォルトの名無しさん2010/06/09(水) 19:48:55
>>15
ublas使うなら ttp://d.hatena.ne.jp/blono/archiveを1から読むといいよ
15が聞きたいことも頻繁にやってる(projectとかsliceとか)
18 :デフォルトの名無しさん2010/06/09(水) 07:26:59
そうですね。A,B,CとX,Y,Z,Wの間には関係がないです。
B,CをもとにA、Y,Z,WをもとにZをそれぞれ定義したいという感じです。
20 :デフォルトの名無しさん2010/06/11(金) 01:06:06
15です。
そのサイトは非常に参考にさせて貰ってます。

たぶんですけどsliceからのswapでいけるのかなぁ〜と考えてます。
ともかく色々試してみます。質問に答えてくれてありがとう。
21 :デフォルトの名無しさん2010/06/12(土) 21:45:16
ビルドしたライブラリ(.lib)の名前の後ろにつく文字列に、mtとmt-sという
2種類のものがあるのですが、どのような違いがあるのでしょうか?
mtというのは、VC++のランタイムライブラリ設定で"マルチスレッド"を
選んだからだと思うのですが、sという文字列の意味がわかりませんでした。
初歩的な質問かもしれないですが、教えてもらえるとうれしいです
24 :デフォルトの名無しさん2010/06/17(木) 00:54:23
>>21
VC++のランタイムライブラリ設定でいうなら
マルチスレッド libboost_…-mt-s
マルチスレッド デバッグ libboost_…-mt-sgd
マルチスレッド DLL libboost_…-mt
マルチスレッド デバッグ DLL libboost_…-mt-gd

ただし、このDLLというのはCランタイムのDLLのことなので
BOOST C++ ライブラリをDLLで使いたい人のために
boost_で始まるlib/dllも出力されるので
bjam toolset=msvc-10.0 --build-type=complete stage
すると5.8GBにもなるという
481 :デフォルトの名無しさん2011/05/14(土) 01:41:27.26
こんにちわ。
質問していいですか?
>>24で書いてあるような、
「この機能を使うためにはこのライブラリをリンクする必要があるよ。」
みたいな情報ってどこに書いてありますか?
公式のThreadのドキュメントみてもそれっぽいの無かったですよ。
25 :デフォルトの名無しさん2010/06/21(月) 20:29:21
weak_ptrってshared_ptrが無効かどうか知る場合に使えばいいですか?

26 :デフォルトの名無しさん2010/06/21(月) 20:31:26
>>25マルチすんな
28 :デフォルトの名無しさん2010/06/22(火) 08:39:32
>>25
いいえ
29 :デフォルトの名無しさん2010/06/22(火) 10:58:33
>>26
ごめんなさい・・・
スルーされたもんで
30 :デフォルトの名無しさん2010/06/22(火) 15:50:16
>>29
そんな言い訳が通用したらマルチは存在しない。
常識で考えればちゃんと取り下げてから来いよ。
31 :デフォルトの名無しさん2010/06/22(火) 21:52:41
>>25
できるけど、普通shared_ptrはコンストラクタで初期化するのだし
そういうコードが必要になるような設計に問題があると思う
if (p != NULL) {...} がバグの温床だからやめようというのと同じで
if (p.use_count()) {...} ってのも関心しない
検索してもなかなか出てこないのには好ましくないから
人に見せるような綺麗なプログラムにはあまり出てこないという背景がある
32 :デフォルトの名無しさん2010/06/23(水) 18:26:38
p.use_count() はともかく

if (shared_ptr<Hoge> p = wp.lock()) {
...
}

あたりはかなり典型的かつ有用な idiom のような?
33 :デフォルトの名無しさん2010/06/23(水) 20:36:20
ブーリアンコンテキストでチェックするのは普通でしょ
そのためにsafe boolが定義されてるんだから

use_count()はデバッグやテストのためであって
製品版では使うなとドキュメントに書いてあったはず
35 :デフォルトの名無しさん2010/07/07(水) 10:17:00
ublasって
純粋なCと速度はあんまり変わりないの?

他のboostもコンパイルに時間かかるだけで実行時間は純粋なCとあまり変わりないの?
36 :デフォルトの名無しさん2010/07/07(水) 10:36:39
純粋なCってなんだよ
この世には不純なCがあるのか?
37 :デフォルトの名無しさん2010/07/07(水) 11:30:27
全てはアセンブリ言語に変換・・・アセンブルされ、リンクし、バイナリは天に召される。
動けわがプログラムよ!
40 :デフォルトの名無しさん2010/07/07(水) 15:13:58
三途のバスを越え、閻魔CPUの裁きが下るそのとき、
あなたの運命は定まるでしょう。
43 :デフォルトの名無しさん2010/07/09(金) 11:21:56
ありがとうございます。一応コンパイル通りました
results.str(0).c_str()
こんなのがあるなんて全然知りませんでした。
45 :デフォルトの名無しさん2010/07/09(金) 14:08:24
\→\\
46 :デフォルトの名無しさん2010/07/09(金) 14:14:35
>>45
ありがとうございました
一見\で\が文字化されそうですね
47 :デフォルトの名無しさん2010/07/09(金) 14:54:13
簡単さならxpressiveがヘッダファイルだけで済んで手軽
Static版の文法覚えちゃえば処理速度も期待できる
ただしコンパイル時間は延びる
50 :名無しさん@そうだ選挙に行こう2010/07/10(土) 08:51:21
ublasは中身替えられるから
ATLASなどを使えばSIMD対応で速いと聞く
ただATLASのコンパイルという壁が・・
51 :名無しさん@そうだ選挙に行こう2010/07/10(土) 09:17:03
regexはユーザーが入力した正規表現をそのまま渡しても平気かな?セキュリティーホールになったりしない?
53 :名無しさん@そうだ選挙に行こう2010/07/10(土) 12:17:27
そうか?型の整合性さえ取れれば何も言われないけどな
山のようにって言っても一部の警告がテンプレートの展開で連鎖してるんだろ
54 :名無しさん@そうだ選挙に行こう2010/07/10(土) 23:54:14
Boost.Xpressiveサイコー
でも標準入りを果たしたStd.Regexの汎用性には負ける。

55 :名無しさん@そうだ選挙に行こう2010/07/11(日) 00:09:26
RegexってインタプリタパターンとかDSLになるん?
57 :名無しさん@そうだ選挙に行こう2010/07/11(日) 22:54:07
>>55
> インタプリタパターン
> DSL
って何?パターン?
よく知らないんだけど、正規表現の業界用語?
58 :名無しさん@そうだ選挙に行こう2010/07/11(日) 23:01:35
>>57
デザインパターン
59 :572010/07/11(日) 23:49:52
>>58
Gang of Fourのdesign patternのこと?
インタプリタパターンなんてあった記憶が無いんだけど。

…あったし!!ごめん!
Interpreter パターン - Wikipedia
ttp://ja.wikipedia.org/wiki/Interpreter_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

60 :デフォルトの名無しさん2010/07/12(月) 08:01:49
> DSL
Domain Specific Language
分野特化言語
61 :デフォルトの名無しさん2010/07/12(月) 10:30:16
>>60
ありがとう。
62 :デフォルトの名無しさん2010/07/12(月) 19:46:25
Interpreter パターンとか Visitor と Composite 組み合わせて ParseContext 作っただけにしか見えないわ
64 :デフォルトの名無しさん2010/07/17(土) 01:11:16
mac osx 10.6 xcode 環境で boost のインクルードパスをシステムインクルードの検索パスに追加してビルドすると、

/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin10/x86_64/bits/c++locale.h:80:0
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin10/x86_64/bits/c++locale.h:80:
error: 'vsnprintf' is not a member of 'std'

などと言われて、コンパイルできません。
osx内のSDKのヘッダとboost のそれが競合してる見たい何だけど、どうやれば解決できませすか。
65 :デフォルトの名無しさん2010/07/17(土) 01:29:37
誰か>>64の解決策教えてよ。友達いないんだ。さみしいの。
68 :デフォルトの名無しさん2010/07/20(火) 11:55:02
OSXと関係ないが、VC++は<c**>でincludeしてもstdにならないんだよな確か
69 :デフォルトの名無しさん2010/07/20(火) 15:14:39
>>68
標準関数はstdに入ってるよ
同時にグローバル名前空間にもぶちまかれるが
70 :デフォルトの名無しさん2010/07/22(木) 11:56:17
http://www.atmarkit.co.jp/news/200909/07/lltv02.html
boostより抽象度は高そうなんだが
90 :デフォルトの名無しさん2010/08/16(月) 20:26:00
>>70
の使い方をまとめた

CiSE simple example
http://d.hatena.ne.jp/niitsuma/20081113/1281521109
92 :デフォルトの名無しさん2010/08/17(火) 09:18:48
>>90
これデバッグはしやすい?
93 :デフォルトの名無しさん2010/08/17(火) 10:19:11
>>90
別にスレ建てたほうが注目してもらえるよ。
「S式でCを書くCiSEスレ」とかにすれば関数型ファンがすぐ集まるよ
98 :デフォルトの名無しさん2010/08/17(火) 13:25:20
>>92
そのための
#line
71 :デフォルトの名無しさん2010/07/22(木) 13:21:34
>言語と戯れよう
プログラミング自体が目的になってる方は死んで下さい
73 :デフォルトの名無しさん2010/07/22(木) 15:22:58
>>71
MPLの変な文法おぼえるよりlisp覚えたほうが得
どうせ生成されるCは同じなんだし

多分、動く奴はこれ

http://homepage.mac.com/naoki.koguro/prog/dyncomp/index-j.html
72 :デフォルトの名無しさん2010/07/22(木) 14:37:08
VC++2010だと、BOOST_SCOPE_EXITとかBOOST_FOREACH使うとクラスビューの
関数解析結果がおかしくなるんだが・・・
74 :デフォルトの名無しさん2010/07/22(木) 15:27:56
どこの馬の骨ともしれぬジャップがでっち上げた俺ライブラリなぞ論外
76 :デフォルトの名無しさん2010/07/22(木) 17:47:33
これってジェネレーラーはLispでかかれてるんかいな?
落としてみたけどS式書いてあるファイルがみつからんよ??
84 :デフォルトの名無しさん2010/08/06(金) 05:29:27
英語のドキュメント読んでましたが、よく分かりませんでした。
まじめにお願いします。
87 :デフォルトの名無しさん2010/08/08(日) 23:56:10
gauche.cgen.cise
のコード読んでるんだが、これあったらboostいらないかもしれない
88 :デフォルトの名無しさん2010/08/11(水) 06:35:05
comp.lang.lispに書いてること信じるなら
thinlispの方がgauche.cgen.ciseよりすごいかもしれない
makefile *.hまで生成するっぽい
91 :デフォルトの名無しさん2010/08/17(火) 03:24:37
1.44
Boost C++ Libraries
http://www.boost.org/
126 :デフォルトの名無しさん2010/09/15(水) 21:55:24
>>91
boostpro からも1.44のインストーラが出てますね。

http://www.boostpro.com/download/
95 :デフォルトの名無しさん2010/08/17(火) 12:54:13
なんでCでこういうのむりやりやろうとするのか疑問だわ。
言語機能に組み込んで新言語つくりゃいいのに。

96 :デフォルトの名無しさん2010/08/17(火) 13:01:41
>>95
言語機能で提供すべきことと
言語自身を使って作るものの
単純明快な判断基準がウケたのがC
新基準を開拓に行くと出かけて帰りが遅いのがC++
99 :デフォルトの名無しさん2010/08/17(火) 14:44:32
>>95
lispの便利さを知ってしまうと他を使いたくなくなる
(コマンドラインgcc からVisualStudioに移ったぐらいの便利さがある)
しかし他から「成果はCかC++で納めてくれ」と言われることは多いらしく
cise とかthinlispとかこの手の試みがいろいろされてきたようだ
97 :デフォルトの名無しさん2010/08/17(火) 13:16:18
lambdaが言語に組み込まれて良かったわ
ずっとboost.lambda使えっていわれたらどうしようかと思った
105 :デフォルトの名無しさん2010/08/26(木) 17:33:26
間違えて送信した
for( 〜 ) {
cout << *p + " ";
}
cout << endl;
とでもすればいい
そういう問題じゃないのか?
106 :デフォルトの名無しさん2010/08/30(月) 14:01:04
boost::tokenizer< escaped_list_separator_sjis > tok( csvLine );
for(boost::tokenizer<escaped_list_separator_sjis >::iterator p=tok.begin(); p!=tok.end();++p){

cout << *p + "\t";
}
cout << endl;
これを出力すると
a e d
q d r
r u t
なりました。ありがとうございます。
これをタブ区切りでtsvファイルに出力したいのですがどうすればよいでしょうか?
107 :デフォルトの名無しさん2010/08/30(月) 14:05:26
>>106
Boostの埒外なので勝手にどうぞ。
108 :デフォルトの名無しさん2010/08/30(月) 14:09:41
tsvってなに?
109 :デフォルトの名無しさん2010/08/30(月) 14:21:29
>>108
TabSeparatedValueフォーマットの略。
111 :デフォルトの名無しさん2010/08/30(月) 15:03:41
>>108
トンクス、tab区切りなのか・・・。
110 :デフォルトの名無しさん2010/08/30(月) 14:34:04
106に書き込んだものです。C++で質問したいと思います。
申し訳ありませんでした。
114 :デフォルトの名無しさん2010/09/03(金) 22:32:03
boost::regex re("(\\d+)(?:,(\\d+))*");

boost::smatch result;
std::string str = "1,2,3,4";
if (boost::regex_match(str, result, re))
{
 for (int i=0; i<result.size(); i++)
  printf("%d: %s\n", i, result.str(i).c_str());
}

このようなコードを実行すると1と4しかresultから取り出せないんですが、
1から4まで全て取り出すにはどうしたらいいですか?
実際はもっと複雑なフォーマットなので正規表現でなんとかしたいです。
117 :デフォルトの名無しさん2010/09/06(月) 10:13:54
CSVはきっちりやるなら一文字ずつチェックしていくしかないだろ。
ダブルクォートの処理とかマジめんどい
123 :デフォルトの名無しさん2010/09/12(日) 19:09:03
>>114>>117
そこはほら、Boost.Spiritで
124 :デフォルトの名無しさん2010/09/12(日) 22:15:08
>>123
いまいち使い方わかってないんだが、ググってみたらCSVのパースも
シンプルな式になるもんだな・・・
面白そうだから今度やってみよう。
教えてくれてトン。
118 :デフォルトの名無しさん2010/09/06(月) 23:34:29
Boost.Polygon早速仕事で使ってみてる。
なかなかいい感じ。

でもまだ機能が少ないな。
他の表現法からの取り込み対応も必要だ。
119 :デフォルトの名無しさん2010/09/07(火) 14:20:33
多角形の頂点管理でもしてくれるライブラリかい?
120 :デフォルトの名無しさん2010/09/07(火) 14:44:58
>>119
点とか矩形みたいな基本図形もある
121 :デフォルトの名無しさん2010/09/07(火) 14:55:09
3次元のポリゴン・メッシュを管理してくれるのなら使い道もあるのだが。
122 :デフォルトの名無しさん2010/09/09(木) 22:50:01
boost.interprocessってメモリアライメントを考慮してくれるんだろうか?
例えば、Win上で64bitアプリとWOW64で動いてる32bitアプリ間で
相互通信する場合はやっぱboost.mpiじゃないと駄目?
125 :デフォルトの名無しさん2010/09/15(水) 14:59:21
foo-baa.cpp
ってファイル名使いたい
でもboostではfoo_baa.cpp
なんだよね
FreeBSDのxtermだと _ 消えて見えないから見にくい
127 :デフォルトの名無しさん2010/09/19(日) 14:37:09
Boost.Logって1.45から?
つうかreview scheduleにLoggingもあるんだけど
やつ間接的にLogに殺されたということなのか

Loggingは犠牲になったのか…
129 :デフォルトの名無しさん2010/09/20(月) 18:06:31
stream に対してなら使える。
130 :デフォルトの名無しさん2010/09/20(月) 22:04:00
>>129

string path = "C:\\test.ini"
istream stream( path );
property_tree::ptree tree;
read_ini( stream, tree );

これはいけるけど、

string test = "[test]\ntest=100"
istringstream stream( test );
property_tree::ptree tree;
read_ini( stream, tree );

これはエラーが出る。何か間違ってるかな
132 :デフォルトの名無しさん2010/09/21(火) 04:18:26
>>130
試してみたけど、PHOENIX_LIMIT のコンパイルエラー以外は普通に通ったぞ(Boost 1.44 + VC9)
とりあえずエラーの内容と環境貼れよ。
133 :デフォルトの名無しさん2010/09/21(火) 21:19:18
>>132
すまん、勘違いしていたようだorz
しょーもないミスをしていた。自己解決したんでスルーしてください
131 :デフォルトの名無しさん2010/09/21(火) 01:36:25
stringstreamのヘッダがインクルードされていないとかってオチ
…はないかw
139 :デフォルトの名無しさん2010/09/24(金) 13:46:51
ストリーム暗号を作っているのですが、手動でやると復号できるのに
プログラムでやろうとするとうまくいきません。2回同じ暗号化を
すれば元に戻るはずなのにそうなりません。
出来ればコマンドラインで暗号化復号化の選択ができるようにしたいです。
初心者でよくわからないことが多いのですがよろしくお願いします。

if (argc < 2) { printf("error\n"); return 1;}
sprintf(fin, "%.255s", argv[1]);
sprintf(fout, "%.250s.perm", argv[1]);

if(d==0){
fp=fopen("2.perm","wb");
fq=fopen("2","rb");
}else{
fp=fopen("2.txt","wb");
fq=fopen("2.perm","rb");
暗号化するときに
fp=fopen(fout,"wb");
fq=fopen(fin,"rb");
とするのはいいのですが、復号のときに暗号化されたファイルを
読み込んで処理しても復号できない。
何のデータにばけているのかわかりません。
140 :デフォルトの名無しさん2010/09/24(金) 13:50:31
boostといったいなんの関係があるんだ
142 :デフォルトの名無しさん2010/09/24(金) 15:35:38
>>140
そこに気付くとは・・・やはり天才・・・
143 :デフォルトの名無しさん2010/09/24(金) 18:05:29
VC++10において、BOOST_TYPEOF(hoge)とdecltype(hoge)は等価になると思っていいんでしょうか?
144 :デフォルトの名無しさん2010/09/24(金) 19:49:20
VC10のdecltypeは、コンパイラがクラッシュする致命的なバグがあるとか。
146 :デフォルトの名無しさん2010/09/24(金) 21:01:53
>>144
コンパイラがクラッシュするって本格的だな。
でも実行時にクラッシュするよりはマシだと思うけど。
147 :デフォルトの名無しさん2010/09/24(金) 23:02:26
>>144
クラッシュしないように使えば問題ない
148 :デフォルトの名無しさん2010/09/24(金) 23:21:10
>>147
なぜMatz
149 :デフォルトの名無しさん2010/09/25(土) 00:01:53
なんでかしらんがdecltypeって文字の並びに一瞬もよおした・・
本能が何かを感じたようだ
150 :デフォルトの名無しさん2010/09/25(土) 01:11:10
Microsoft製品はSP1が出てから乗り換えるのが基本
本体の安定性もだが、OSだとサードのソフトが、VSだとプラグインやSDK類の対応がすぐには為されないからな
154 :デフォルトの名無しさん2010/10/13(水) 20:14:50
variantってwitch()で型を判断するのダサくないですか?
なんかいい方法無いでしょうか
160 :デフォルトの名無しさん2010/10/14(木) 01:18:45
>>159
オブジェクトはひとつでいい。すべての型に対応するオーバーロードがあれば。

>>154
if (T* p = boost::get<T>(&v)) ... おすすめ。
155 :デフォルトの名無しさん2010/10/13(水) 20:19:55
Visitor使え。
156 :デフォルトの名無しさん2010/10/13(水) 20:26:10
>>155
visitorとは何でしょうか?
159 :デフォルトの名無しさん2010/10/13(水) 20:56:27
ファンクションオブジェクトを型ごとにつくればいいのか。。。
161 :デフォルトの名無しさん2010/10/14(木) 20:18:36
autoでどうにかならないの?
162 :デフォルトの名無しさん2010/10/15(金) 01:18:06
>>161 何が?
164 :デフォルトの名無しさん2010/10/23(土) 17:33:40
V2ならパース結果をコンテナやタプルに格納する処理を超簡単に書ける。
Boost.Fusionとの連携もすごい。Boost.Qi も出始めと比べて安定して枯れてきてる。
Classic のコードを保守しなくていいなら乗り換えない理由はないと思う。
167 :デフォルトの名無しさん2010/10/23(土) 18:37:36
>>164-165
わかった。乗り換えてみるよ。
168 :デフォルトの名無しさん2010/10/28(木) 15:41:30
sourceforgeのファイル一覧がひどいことになってるな
何のベンチマークだよこれ
171 :デフォルトの名無しさん2010/10/31(日) 13:33:44
わからないです。そんなもの見つからないし、そんなコードがあったら毎回エラーになるはずですよね・・・
172 :デフォルトの名無しさん2010/10/31(日) 13:34:51
とりあえず boost/function.hpp 使ってるところをすべてコメントアウトしたら出なくなったかも
174 :デフォルトの名無しさん2010/10/31(日) 13:39:43
ちなみにIDEはVisualStudio2010Express
x86ターゲット、デバッグビルド
CPUはCore2Duoです
177 :デフォルトの名無しさん2010/10/31(日) 17:10:56
>>174
VC10なら使える人が多いんだから、エラーの出るソース晒してみそ

ビルドのやり直しで通るなら、簡易ビルドをOFFにしてみるてがある。
175 :デフォルトの名無しさん2010/10/31(日) 13:42:54
とりあえずエラーになってしまったオブジェクトも再ビルドすれば普通に通るので、何度がビルドすれば実行ファイルはできます

コンパイラのバグかな?
176 :デフォルトの名無しさん2010/10/31(日) 13:55:44
ディスクが壊れてるんじゃね?
179 :デフォルトの名無しさん2010/10/31(日) 22:18:47
>>176-178

レスありがとうございます

boostのディレクトリを丸々コピー→古いのを削除→新しいのをリネームしたら出なくなったっぽいです。
ディスク障害だったのかな・・・しばらく様子を見てみます
180 :デフォルトの名無しさん2010/11/01(月) 15:21:45
昔はc++を喜んで使ってたが
lisp使うようになってからは
lispでデバックしてc++は自動生成するだけだわ
それにしてもc++の案件多いなあ
181 :デフォルトの名無しさん2010/11/01(月) 15:25:02
>>180
最近のlispはC++にコンバートできるんだ?
Cへのコンバートなら良く見かけるんだけど・・・。

あとSchemeで実用レベルのCorC++コンバーターとかあります?
182 :デフォルトの名無しさん2010/11/01(月) 15:30:32
>>180
Lispのどこらへんが魅力ですか? いや、マジに質問で。そっちのが効率いいなら
そっちに乗り換えるのもありかなと。
183 :デフォルトの名無しさん2010/11/01(月) 16:38:02
>>182Lisp族の魅力はググればいろいろ読めるよ。
185 :デフォルトの名無しさん2010/11/01(月) 21:37:58
lispは合理的ではあるけど、アプリのすべての部分をlispで書くのは無茶じゃないか?
192 :デフォルトの名無しさん2010/11/04(木) 08:26:01
javaをc++の方言としてコンパイルする方法あるみたいだから
tomcatあたりをc++としてコンパイルしたらいいんでないの?
194 :デフォルトの名無しさん2010/11/05(金) 15:28:14
boostのmulti_arrayってコピーすると
ポインタで共有するんじゃなくて内容丸ごとコピーするのね
普通の配列みたいに共有して、不要になったら解放ってできないかな
shared_ptr<multi_array<T,int>>にするしかない?
195 :デフォルトの名無しさん2010/11/05(金) 15:31:04
>>194
「普通の配列」が何を指してるのか知らないけど、言語組み込みの配列も std::vector も
boost::array も共有なんて動作はしません。

で、共有したいという目的に対して shared_ptr では何か不満なの?
197 :デフォルトの名無しさん2010/11/05(金) 15:37:23
>>194
http://www.boost.org/doc/libs/1_44_0/libs/multi_array/doc/reference.html

multi_array_ref やら view generator やらあるらしいぞ。
200 :1942010/11/05(金) 16:05:03
表現が悪かったっす
クラスメンバに多次元配列がほしいのですが、コンパイル時にサイズが不明なので、
言語組み込みの配列の配列を動的に確保して、多次元配列にしていました
管理が面倒なのでmulti_arrayを使うことに変更したいのですが、
インスタンスをコピーすることがままある&配列の中身は変えないので、
どうせなら配列の中身を丸ごとコピーしないで、ポインタだけで共有したいな、と

目的にはshared_ptr<multi_array<T,int>>が一番合致するんですが、
そうすると結構ソースコードを書き換える必要があるので
202 :デフォルトの名無しさん2010/11/06(土) 01:48:28
>>200
そんなに書き換えがいやなら、元の名前で multi_array<T,int>& とか multi_array_ref とかを
別で置いたらいいんじゃね?
203 :デフォルトの名無しさん2010/11/06(土) 07:41:40
>>200
参照渡しで渡せばよくないか?
201 :デフォルトの名無しさん2010/11/05(金) 16:17:11
shared_ptrだと不味いけどmult_arrayがまるごとコピーじゃなかったら問題なかったってことは
*とか->の話なのか?
205 :デフォルトの名無しさん2010/11/20(土) 12:08:55
あれ・・・bjamでビルド失敗するんだがなんだこれ
1.44以前や最新のリポジトリだと問題ないんだが
206 :デフォルトの名無しさん2010/11/20(土) 16:58:02
1.45 VC10でビルドできたよ。
bjamがアンチウイルスに引っかかることは昔あったな。
207 :デフォルトの名無しさん2010/11/20(土) 17:07:41
1.45ビルドできたと思ってたら、アプリのビルドで未定義外部シンボルが出てきた。
216 :2072010/11/21(日) 13:36:23
>>207のリンクエラーは俺のミスでした。
間違えてx86でライブラリビルドしてx64のアプリをビルドしてました。
x64でboostのビルドやり直したら直った。
208 :2052010/11/20(土) 19:08:36
zipや7zで圧縮されてるソースだと駄目だったけどbz2のはビルド出来た
解凍か何かでしくじってたんではないかと思う
209 :デフォルトの名無しさん2010/11/20(土) 19:58:30
あー、解凍云々じゃなくて、ICU入れて--installオプションでビルドしようとするとしくじるみたい
MPICHも絡んでるかもしれん
bjamはフル機能でビルドしようとすると途端に動作がおかしくなるんだよな・・・
210 :デフォルトの名無しさん2010/11/20(土) 23:59:36
駄目だ、Regexビルドしようとするとエラー吐く
わけわからんちん
212 :デフォルトの名無しさん2010/11/21(日) 00:56:26
win vc9環境. 公式から落としてきた bjam.exe だとエラーで、
bootstrap.bat で生成したbjam.exeだとコンパイルできた…
そういうものなの?
214 :2102010/11/21(日) 02:54:08
今までは最新のリポジトリからビルドしたbjam.exeを常に使ってたんだけど、
>>212のレスを見て1.45リリース版のソースからビルドしたbjam.exeを使ったらビルド出来た
今回のリリースはちょっと癖があるな
217 :デフォルトの名無しさん2010/11/21(日) 13:43:43
x64とx86ってライブラリ名同じなんだけどそういうものなの?
219 :デフォルトの名無しさん2010/11/21(日) 16:35:04
>>217
        / /      '" /    / ,,-、 /、ヽ\  ゙i;,-''"   / ./  /─''''" ̄ ,,/
        /  ./ /   ,,,-‐'"-/   / ./ ゙" "\  ゙i;,  | 、// /   "    ,,,/
       / ,-''/ /    ,,-''"_ /   //       ヽ  l /  レ'/~       /‐/
      / /  | l|  ,,-'"/゙/,」|    /    ..::;;;,,,  }  /   |~ ,,-‐,,,-'''  //~
     / /-'''''| | /l /‐'''/'' .人   i'    .:: :;'" / / l  ノ゙i// ,,-‐'"──==
     //'"   ゙i;: | /‐' ./,, ,,ノ ゙i;,.  |     _,,-ヾ.// ノ ,-''" l |  ‐'"   ,,,-‐二
     レ'     ヽl:i' ./  )'、‐,\゙i;: | ,,,-‐二-┬ナ" /‐'"‐ 〉 ,i'───'''" ̄~-''"
         ,-‐',ヽ|'"  ./゙ヽ-ゝ='\゙i,'''ヽ -゙=‐'   '" ,‐'ノ,, /‐''" ,,-‐'''"~
        / / ;;:.  ──ヽ, ゙i;'''''' , ゙ "-‐'''''"""    〔_,/ ゙ヽ'-'"~
       / /   / ,; ,,_}_  ゙、 ./__,,  _,,       /      \    
      ,;'  / ,;;;:;:/;: ,,   ~ ヽ ヽ.  ヽニ‐'、     / /       ゙i,_        おめぇ、ここ大丈夫か?
    ./        ''  ,l,,,,,,/ 〉  ゙ヽ、 ''''    ,,-''" /        ゙i.\
    /          / ヽ /     ゙ヽ、--イ~;;:'" //   ::;:;:;:   | \
   i          /  ̄ ゙̄"          |;:" //            ヽ-‐'''"~l|
  ./    ゙''''ヽ、,,-‐''"              .i /,;'"   _,,,,,,,,,_,,,-‐'''-''"~     |
 (" ̄"'''''‐--、,,_i'                 // '",,-─'''"  ,,,-‐'",-‐'"  ,,,,-‐ .___|
 i' ゙'':::::::::::::::::::::::}

221 :デフォルトの名無しさん2010/11/21(日) 21:04:11
>>219
どうやってきりかえるん?
224 :デフォルトの名無しさん2010/11/23(火) 19:41:47
32ビットと64ビットのライブラリでファイル名一緒だから、出力ディレクトリを変えている
自分はstage派だから--stagedir=stage32とstage64
225 :デフォルトの名無しさん2010/11/24(水) 23:04:47
(´;ω;)自前 gcc-4.6.0(win) で signals だけが build を失敗する・・・orz
自前 gcc-4.5.1,4.5.2(win) では、build に成功するのにヽ(`Д´)ノウワァァァン
230 :デフォルトの名無しさん2010/11/25(木) 06:42:52
>>225
(´・ω・) log 吐かせたら stl_map.h の所で error してた
取りあえず、自前 gcc-4.6.0 の事なので放置・・・(´;ω;`)

以下、一部抜粋
-----
In file included from c:\mingw\bin\../lib/gcc/i686-pc-mingw32/4.6.0/include/c++/map:61:0,
from ./boost/signals/detail/named_slot_map.hpp:20,
from libs\signals\src\named_slot_map.cpp:12:
c:\mingw\bin\../lib/gcc/i686-pc-mingw32/4.6.0/include/c++/bits/stl_map.h: In member function 'void std::map<_Key, _Tp, _Compare, ・・・ < 略 >
libs\signals\src\named_slot_map.cpp:105:23: instantiated from here
c:\mingw\bin\../lib/gcc/i686-pc-mingw32/4.6.0/include/c++/bits/stl_map.h:626:9: error: call of overloaded
c:\mingw\bin\../lib/gcc/i686-pc-mingw32/4.6.0/include/c++/bits/stl_tree.h:763:7: note: candidates are: void std::_Rb_tree<_Key, ・・・ < 略 >
233 :デフォルトの名無しさん2010/11/25(木) 16:06:27
>>225
またおまえか。
227 :デフォルトの名無しさん2010/11/25(木) 01:47:27
gccはバージョンによってエラー吐いたり吐かなかったりで始末に負えん
231 :デフォルトの名無しさん2010/11/25(木) 09:26:14
こんなガラパゴスで愚痴ってたって解決せんぞ
さっさとBoostコミュに報告しろ
234 :デフォルトの名無しさん2010/11/25(木) 16:10:26
>>231-232
CYGWIN+MinGW+GCCスレでもずっとこの調子で長期にわたって
住民を困らせてるやつだから相手にしないほうがいいぞ。
232 :デフォルトの名無しさん2010/11/25(木) 12:57:09
「自前」なので放置、ってことは gcc の中身をいじってるんじゃないか?

相談したいならエラーメッセージを省略とか、わけわからんことするな。
241 :デフォルトの名無しさん2010/12/09(木) 20:24:21
BOOST_SCOPE_EXITでメンバ関数を呼びたいときって

CMyClass* pthis = this;
BOOST_SCOPE_EXIT((&pthis))
{
  pthis->MemberFunc();
}
BOOST_SCOPE_EXIT_END;

こうしないと駄目?
244 :デフォルトの名無しさん2010/12/21(火) 12:00:21
arrayを何とかして要素数の指定無しに使いたいんですが、無理なんでしょうか。

array<int, 3> a = {1,2,3};の要素数は推測して欲しいです。
245 :デフォルトの名無しさん2010/12/21(火) 12:07:20
int a[] = { 1, 2, 3};
246 :デフォルトの名無しさん2010/12/21(火) 12:27:22
>>245
その場合begin()やend()が提供されません
247 :デフォルトの名無しさん2010/12/21(火) 13:00:03
boost::rangeのbegin()とend()を使えばいいのでは?
248 :デフォルトの名無しさん2010/12/21(火) 14:57:50
>>247
あり^^
249 :デフォルトの名無しさん2010/12/24(金) 08:56:10
なぜYes No判定関数は必ず
is_foo
なんだろう
251 :デフォルトの名無しさん2010/12/24(金) 13:22:56
>>249 if (x.is_foo()) ... が英語の自然な文として読めるからだろ
252 :デフォルトの名無しさん2010/12/24(金) 22:57:42
すみません質問です。
Win32のAPIによくあるコールバックから手軽にメンバ関数を呼びたくて
boost::bindでクラスのメンバ関数にバインドしたいのですがうまくいかず困っています。

具体的にはSetWindowsHookExに渡すHOOKPROCに、以下のメンバ関数を割り当てたいです
LRESULT App::HookProc( int code, WPARAM wp, LPARAM lp )

ちなみにHOOKPROCの定義はこんな感じ
typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);


こんな感じで描いてみたんですが
SetWindowsHookEx( WM_IME_SETCONTEXT, boost::bind( &App::HookProc, this, _1, _2, _3 ), NULL, 0 );

結果は次の通りです
'SetWindowsHookExW' : 2 番目の引数を 'boost::_bi::bind_t<R,F,L>' から 'HOOKPROC' に変換できません

どう書いたら通るんでしょうか。よろしくお願いします
256 :デフォルトの名無しさん2010/12/25(土) 00:53:02
>>252
std::functionを使えばいい。
std::functionのオブジェクトのポインターをLPARAMとかを経由して渡す
コールバック関数は、ポインター経由でfunctionを使う。
253 :デフォルトの名無しさん2010/12/24(金) 23:10:30
無理に決まってんだろ
静的なメンバ作ってそこから呼ぶしかない
255 :デフォルトの名無しさん2010/12/25(土) 00:12:42
呼び出し規約と引数をHOOKPROCに合わせたトランポリン関数を
動的に生成して…とか考え始めて無駄な時間を過ごすのが俺は好き。
259 :デフォルトの名無しさん2010/12/26(日) 15:12:02
class hoge{ virtual void f(); };
class fuga : public hoge { void f(); };

x_queue<hoge> q;

q.push(hoge());
q.push(fuga());

q.front().f(); // hoge::f
q.front().f(); // fuga::f


こんな感じのコンテナってboostにない?
ようするにptr_vectorからnewも隠蔽したような感じの
stl基準満たしてなくてもいいです
261 :デフォルトの名無しさん2010/12/26(日) 15:15:32
>>259
本当にほしいなら ptr_vector をラップすりゃいいんだろうけど、
あんまり意味があるとは思わんな。
263 :デフォルトの名無しさん2010/12/28(火) 01:19:47
2chニュースは時事ニュースがとんでもなく面白く理解できる。
難しそうではあるが気になるニュースタイトルに飛んでみると記事に対する2ちゃんねらー達の面白い書き込みによってニュースの内容があっという間に理解出来る様になる。
おれは今まで半ば義務感でニュースをサイトなどに目を通していただけなのだが、2chニュースのお陰で仲間の誰よりも時事問題の先端を行く様になってしまった。もはや中毒気味になる位にニュースが毎日楽しくて仕方ない。
ここでは敢えて四つしか取り上げないが、2NNサイト内であればどの掲示板でもRSS生成が可能。
サイトを覗くだけでも良いがRSSリーダーで効率良く情報収集する人ならばこちらがオススメ。(RSSリーダーは各デバイスに応じた専用アプリ・ソフトがある)

またTwitterでも2ch botがある。Twitterは各デバイスに応じた専用クライアントソフト・アプリを介して使用するのが便利。興味が有る人は各々調べて貰いたい。

●2ちゃんねる ニュースサイト(RSS生成可)
2NN新着http://www.2nn.jp/latest/
2NNトップページhttp://www.2nn.jp/
2NN今日のニュース http://www.2nn.jp/ranking/today/
2NN祭級ニュース http://www.2nn.jp/matsuri/

●2ちゃんねる ニュースサイト(RSS生成不可)
2ちゃんねる BBY(各ニュース板における前日までの新着スレッドが一望出来る)http://headline.2ch.net/bbynews/
2ちゃんねる 全板縦断 勢いランキングhttp://2ch-ranking.net/index.html?board=zenban
?page=click_linklog_view.daily_ranking&
264 :デフォルトの名無しさん2011/01/02(日) 15:17:28
Windows 7 64bit Visual Studio 2010 に32ビット、64ビット環境を作りたくて
boost1.45 をこのようにインストールしたんだが大丈夫?
266 :デフォルトの名無しさん2011/01/05(水) 18:01:17
boost.fusionにlambdaの配列入れたいけど無理っぽい
272 :デフォルトの名無しさん2011/01/14(金) 18:25:03
271 :デフォルトの名無しさん2011/01/14(金) 13:16:14
質問があります。

boost で document を作成したいのですが、
その時、doxygen に対して オプションを渡したいです。

doxygen 単体の実行であれば、Doxyfile に書き込むものです。

色々調べて、jam ファイルの中に

<doxygen:param>VAR=VAL

と、いった記述を見かけたのですが、書き方がわかりません。


質問をまとめると、

boost 全体の document 作成に対して、効かせたい doxygen の設定がある場合、
* どこのファイルに
* どのように
記述したらいいのかということです。

ご存じの方、教えていただけないでしょうか?
274 :xfsd2011/01/24(月) 22:12:44
boostでベクトル*区間行列の計算のプログラムを作りたいのですが、うまく作れません
。教えてくれませんか
275 :デフォルトの名無しさん2011/01/24(月) 23:21:30
>>274
まずは作ってみたコードと、うまくいかなかかった結果と、期待している結果とがわかるようにするんだ。
276 :デフォルトの名無しさん2011/01/24(月) 23:37:08
STMなんでboostにはいってねーんだよ
いれろよ

おねがいします。
278 :デフォルトの名無しさん2011/01/26(水) 14:44:54
関係ないけどublasってopenCVみたいに初期化できないの?
Mat M = (Mat_<double>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1);
279 :デフォルトの名無しさん2011/01/27(木) 07:14:46
>>278
最近のアップデートで初期化メソッドが追加になったはず
285 :デフォルトの名無しさん2011/02/04(金) 18:19:57
286 :デフォルトの名無しさん2011/02/04(金) 23:15:44
boostに日本人提案のものあるの?
289 :デフォルトの名無しさん2011/02/05(土) 03:48:10
>>286 パッチやバグ報告ならいくつかあるみたいだね。
287 :デフォルトの名無しさん2011/02/05(土) 03:40:46
サッカーはナガトモが世界のリーグ行ったのに
コンピューターサイエンスは世界のライブラリに名を連ねる事ができないのか
290 :デフォルトの名無しさん2011/02/05(土) 17:47:23
>>287
日本って,他の奴の成果をtake,take,and takeで自分の成果は情け無い程度giveするが国技
だからコンピューターサイエンス(IT)でも他の奴の成果をtake,take,and takeし
自分の成果は情け無い程度にgive。
291 :デフォルトの名無しさん2011/02/05(土) 18:33:29
boost::any向け総称関数をMLに投げてみたことあるけど、誰も興味無さそうだったので放置してる。
giveした所で誰も反応してくれないからなあ。
297 :デフォルトの名無しさん2011/02/05(土) 19:45:59
>>291
あまりにも情け無いgiveでゴミ扱いなんだろ
本人が凄いgiveと思っているだけじゃね
292 :デフォルトの名無しさん2011/02/05(土) 19:23:39
最低限、反応されるまで声上げ続ける位のガッツがなきゃどうにもならんだろ
キンタマ付いてんのかお前
298 :デフォルトの名無しさん2011/02/05(土) 19:55:10
アイディアってのは思いついてから使い道が見つかるまで何年かかるかわかんねえ
思いついた奴が生きているうちかどうかもわかんねえ

大勢に知らしめるところまでが、思いついた奴にできることだ
芽が出るにせよ出ないにせよガタガタさわぐのはみっともないだけだ

俺に言わせれば思いつくこと自体に満足できない奴は俗物だ
307 :デフォルトの名無しさん2011/02/07(月) 06:24:52
>>298
Haskellのライブラリなんか殆どが何に使えるのかわからん
357 :デフォルトの名無しさん2011/02/28(月) 17:24:43.30
>>307
例えば?
300 :デフォルトの名無しさん2011/02/05(土) 22:13:47
色々だよ
例えば周波数帯の合わない検波器の使い方とか
「ある処理」を非再帰で片付ける方法とか
304 :デフォルトの名無しさん2011/02/06(日) 15:53:39
まさか、boostを使わないプログラムに、ここはboostで出来るから変えろ!
とかわ言わないよな?
306 :デフォルトの名無しさん2011/02/06(日) 17:04:52
> boost と関係ないもの

boost のライセンスと相容れないものは
とりあえず boost と無関係
308 :デフォルトの名無しさん2011/02/07(月) 07:00:45
spiritの機能を動的に使う方法ないですか?
組み込み言語のほうで構文決めたいんですが。
309 :コピペのレビューお願いします2011/02/07(月) 14:08:05
5年前の長友は怪我で試合出場どころか
観客席で応援として太鼓を叩くだけだった体たらく

今や世界のインテルに移籍して
口だけじゃなく世界一のSBを目指してる


頑張ればお前らだって(精神の)怪我で社会出場どころか
2ちゃんねるでキーボードと情弱叩くだけだった体たらくから
5年後にはBoostにライブラリを採択されるような
世界級プログラマになってるかもだぞ!

早く世界のインテルに移籍して
愚痴だけじゃなく世界一のSEを目指せ!Σd(`・ω・´)
314 :デフォルトの名無しさん2011/02/07(月) 16:58:33
>>309
うまくないし何か痛いわ
317 :デフォルトの名無しさん2011/02/08(火) 02:01:41
>>314
あり^^
311 :デフォルトの名無しさん2011/02/07(月) 15:05:00
BoostとPythonを並べる理由がわからない…

もしかしてBoostのこともPythonのことも一切分かってない馬鹿なら
並べて云々できるってことなのか…
312 :デフォルトの名無しさん2011/02/07(月) 15:14:29
Boostと並べたいならDだろ
318 :デフォルトの名無しさん2011/02/08(火) 09:15:58
>>312
D はもう終わってる
Boost はまだ始まっていない
315 :デフォルトの名無しさん2011/02/07(月) 18:18:00
Eclipse CDTでboostのバージョンが上がる度にフォルダ名を変えるのが
面倒臭いので、"Boost"という単純な名前にしてしまった

これだとパッと見バージョンを間違える事があるけどいちいちプロジェクトを
書き換えなくていい
320 :デフォルトの名無しさん2011/02/09(水) 19:38:46
ちゅうか、Dと比べたら、Boostは既に市場に行き渡ってると言っていい状況だよな。
322 :デフォルトの名無しさん2011/02/09(水) 21:05:15
BoostとDを並べる理由がわからない…

もしかしてBoostのこともPythonのことも一切分かってない馬鹿なら
並べて云々できるってことなのか…
326 :デフォルトの名無しさん2011/02/11(金) 14:50:49
Polygonの活用方法がいまいちよく分からないんだけど
使ってる人がいればどんなふうに使ってるのか教えてくれ
327 :デフォルトの名無しさん2011/02/17(木) 13:42:37
なんでPythonのライブラリがあるの?
Pythonはそんなに優遇されてるの?
328 :デフォルトの名無しさん2011/02/17(木) 14:28:43
ruby厨乙
330 :デフォルトの名無しさん2011/02/19(土) 21:23:39.09
>>328
誰と闘ってるんだ
332 :デフォルトの名無しさん2011/02/20(日) 18:49:18.02
multi_index_containerの質問です。

classをデータとして登録してみたのですが、
get<0>()で取得した場合、constメンバ関数しかアクセスできませんでした。

BOOST_FOREACH( const Hoge& h,hoge.get<0>())
{
h.test();
}
constを付けないとコンテナ側のコンパイルエラーとなってしまい、
constを付けると test()がコンパイルエラーとなってしまいます。

multi_index_containerは、const利用が前提なのでしょうか?
それとも、constを外して利用する手段は存在しますか?
一応、get<0>()以外にそういった用途の物がありそうなのですが、
見つけられなかった・・。
334 :デフォルトの名無しさん2011/02/20(日) 19:15:48.26
やはりそうですか、
すっきりしました、ありがとうございます。
335 :デフォルトの名無しさん2011/02/21(月) 21:01:12.20
regexの一文字マッチのドットを
日本語の一文字に対応させることってできます?
336 :デフォルトの名無しさん2011/02/21(月) 21:10:57.75
wregex使えばいいよ
342 :デフォルトの名無しさん2011/02/23(水) 13:57:57.13
>>336
ttp://www.boost.org/doc/libs/1_46_0/libs/regex/doc/html/index.html
wregexについての記述が見当たらないんですが、
この中にありますか?
なんか探しても見つかりません…
344 :デフォルトの名無しさん2011/02/23(水) 14:15:50.98
337 :デフォルトの名無しさん2011/02/21(月) 21:23:14.07
c++の列挙体をboost.python使ってpythonから扱いたいんだがどうすればいいんだ?
340 :デフォルトの名無しさん2011/02/21(月) 22:13:21.78
スレ違い。冥府板へ

【自刃】一番すごい自決した奴が優勝【陰腹】 その6
ttp://greek.2ch.net/test/read.cgi/hades/1293804606/
避難所
ttp://kamome.2ch.net/test/read.cgi/river/1293804606/
343 :デフォルトの名無しさん2011/02/23(水) 14:07:55.35
345 :デフォルトの名無しさん2011/02/23(水) 15:37:32.53
>>343,344
ありがとうございます。
346 :デフォルトの名無しさん2011/02/23(水) 19:17:49.15
Boost.lclなるものが加わったみたいでなんじゃこりゃと思ったらIclかよ
フォントによっては区別つかねーよ
348 :デフォルトの名無しさん2011/02/23(水) 19:47:02.23
Iclって何するんだ?
名前からすると間隔つーか値の範囲を持ったオブジェクトあたり?
350 :デフォルトの名無しさん2011/02/24(木) 16:53:06.62
boost.Intervalじゃ[1,3)みたいな一つの開区間しか表せないけど
数直線状の任意の部分を表すには[1,3)と[3,5)と[7,9)みたいに複数の区間がいるから
それを扱うものなんじゃないか?
352 :デフォルトの名無しさん2011/02/25(金) 06:48:04.25
>>350
それを実現するのが interval_set
interval_set 間の集合演算もできる。
interval_map というのもあってこっちは各区間に値を付けられる。
{[1,3]->1} に [2,4]->1 を追加すると {[1,2)->1,[2,3]->2,(3,4]->1}になる、多分。
353 :デフォルトの名無しさん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 :デフォルトの名無しさん2011/02/25(金) 22:44:46.42
>>353
boost_145@MSVC2010
エラー無し

boostのバグじゃね?
あいつらワイド文字気分で作って大してテストもしてねぇから
356 :デフォルトの名無しさん2011/02/28(月) 16:34:27.96
質問です。
以下ページにあるC++0x用LINQメソッドを
http://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) { } // コンパイルエラー
http://ideone.com/Iu133 (boostの環境が作れなかったのでソース閲覧用に)
iteratorのBOOST_FOREACHに対する要件が足りていないのかと思い、
iterator_adaptorやiterator_facadeを
const_iteratorに継承させたりしてみたのですが、
私がこれらをあまり理解出来ていないこともあってか
最終的にコンパイルエラーを取り除くことが出来ませんでした。
(あとtypedef const_iterator iterator;も追加してみました)
どなたか解決のヒントをいただけませんでしょうか?
358 :デフォルトの名無しさん2011/03/01(火) 02:11:17.74
>>356 エラーメッセージは?
370 :デフォルトの名無しさん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()))
がコンパイル通るようになった。
359 :デフォルトの名無しさん2011/03/01(火) 09:41:42.85
エラーメッセージ書かない時点で
答えてもらう気ないだろ
360 :デフォルトの名無しさん2011/03/01(火) 09:49:27.12
boost使用時のコンパイラエラーメッセージって役に立つか?
立たないことは無いけど、異様に長いし、エラーをピンポイントで指摘してないし。
結局、行番号を頼りに修正することが多い。
362 :3562011/03/01(火) 11:12:03.69
失礼しました。上記のがideoneのソースそのままでのコンパイルエラーです。
イテレータの解釈辺りでtypeのtypedefが無いということのようなので、
イテレータがforeachの走査対象に足る要件を満たしていないのかなと判断しました。
iterator_adaptors系を使えば良い感じに揃えてくれるのかな?と思ったのですが、
それらを用いるコードが私の理解ではきちんと書けていない状況です。
363 :デフォルトの名無しさん2011/03/01(火) 13:34:43.76
日本人の貢献者ねえ・・・

cpanオーサーに日本人増えてきたらこんな事件おきたり
http://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 :デフォルトの名無しさん2011/03/01(火) 21:17:41.84
>362
>イテレータの解釈辺りでtypeのtypedefが無いということのようなので、
>イテレータがforeachの走査対象に足る要件を満たしていないのかなと判断しました。
多分違う。エラーが出てるのは mpl::eval_if のところなのでここでエラーの出てる type は
mpl のメタ関数としての type だ。
あとエラーの出てる行は古いコンパイラ用の workaround のところで VC++ .NET 2002 以前を使ってる場合に
当たるんだけど C++0x 向けでラムダ式とか使ってるみたいだしなんかどっかおかしそう。
367 :3562011/03/02(水) 03:39:10.88
>>365
なるほと・・、私の見当違いだったんですね。
マクロシンボルでの分岐をトレースして原因を調べてみたいと思います。
おかげで一歩前へ進めます。どうもありがとうございました。
366 :デフォルトの名無しさん2011/03/01(火) 21:25:53.46
>364
コンテナにメンバ関数を追加するわけにはいかにので別途アルゴリズムが用意されてる。
http://www.boost.org/doc/libs/1_46_0/libs/range/doc/html/range/reference/algorithms/new.html
368 :3642011/03/02(水) 04:08:56.10
>>366
おぉぉありがとうございます!
これでbegin/endのタイプ量が激減してソース横幅も縮みそうです。
やはりきちんと用意されているものなのですね。

ただメンバ関数とは書く順番が変わってしまうのですか・・
黒魔術的な何かで何とかされているかと思っていたので少し残念です。
C++にも拡張メソッドが欲しくなりますね。
372 :デフォルトの名無しさん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 :デフォルトの名無しさん2011/03/03(木) 02:53:01.08
>>372
ありがとうございます。
374 :デフォルトの名無しさん2011/03/03(木) 12:25:13.55
以前に
VisualStudio
の環境でダウンロードしただけで動くものをまとめてファイルにアップしてた人がいたけど
誰かurl知りませんか?

便利なのにテンプレに載ってないのはなんでです?
377 :デフォルトの名無しさん2011/03/03(木) 17:21:36.18
>>374,375
それsvnの野良ビルドだよね確か。
svn最新なので万人向けじゃないし、svn追っかける人なら自分でビルドするし、特に需要がなかったんじゃない?
あと更新される度にスパムのようにURL貼ってたのでウザがられてた。
テンプレ申請なりサイトでRSS配信なりすればよかったのにね。
402 :デフォルトの名無しさん2011/03/06(日) 13:56:54.46
376 :デフォルトの名無しさん2011/03/03(木) 15:31:43.47
前と違って、今は公式でVisualStudio用のバイナリが配付されてるじゃん
そういえばどっかの企業もバイナリ配布してたけどやめちゃったな
378 :デフォルトの名無しさん2011/03/03(木) 17:55:36.54
bjamでビルド簡単になったんだからboostぐらいビルドしようぜ・・・
boost使う=開発環境あるわけだし。
ビルドに時間掛かるのは別w
379 :デフォルトの名無しさん2011/03/04(金) 10:17:25.38
Windowsは知らないけどLinuxでBoostビルドすると風呂入って一眠りしてコーヒー飲むぐらい時間かかるんだけど・・・
380 :デフォルトの名無しさん2011/03/04(金) 10:32:46.31
>>379
それってPCの性能じゃなくてOSの差なんですか?
381 :デフォルトの名無しさん2011/03/04(金) 11:54:38.77
>>379
出涸らし風味な話題だけれど・・・
C2Q 6550/RAM 4GB/XP SP3(x86)/7200rpm HDDの環境で時間は忘れたけど結構掛かったな。
あまりの遅さにSSD買ってVSとboostのソースを置いてビルドしたら爆速で終わった。
仕事なら時間単価で計算すると1ヶ月ぐらいで元取れるしなw
383 :デフォルトの名無しさん2011/03/04(金) 12:45:41.93
CPU性能ももちろん大事だけど、ストレージのランダムアクセス性能が一番影響しそうだね
数GB読み書きするでしょ
386 :3792011/03/04(金) 16:00:59.64
俺の環境がシングルコアでへぼいというのは百も承知だが
・静的ライブラリ
・静的ライブラリ(デバッグ情報付き)
・静的ライブラリ(STLportのデバッグモードを使ったデバッグ情報付き)
・動的ライブラリ
・動的ライブラリ(デバッグ情報付き)
・動的ライブラリ(STLportのデバッグモードを使ったデバッグ情報付き)
を全部のライブラリに噛ましてやると俺のマシンは悲鳴を上げるんだぜ
情けないよな
387 :デフォルトの名無しさん2011/03/04(金) 16:26:40.23
要らない情報だよねそれ
388 :デフォルトの名無しさん2011/03/04(金) 16:48:16.20
>>387
つ[strip --strip-all]
389 :デフォルトの名無しさん2011/03/04(金) 17:52:40.76
>>387
要らないレスすんなよ
392 :デフォルトの名無しさん2011/03/04(金) 18:55:41.45
-jxオプションを付けてやると並列ビルドされるのでかなり高速化されるよ
並列数はCPUのコア数とクロックに応じて程々に

例:8並列の場合
bjam -j8 (以下いつものオプション色々)
395 :デフォルトの名無しさん2011/03/04(金) 19:48:33.59
そうやって「俺がいらないものはいらない」で排除ばっかしてるから
ゴミレスしか残らなくなるんだろ
396 :デフォルトの名無しさん2011/03/04(金) 20:14:20.85
とはいえいきなり自分の手際の悪さを晒されましても
ゴミレス以外にどうリアクションをとればいいのやら
400 :デフォルトの名無しさん2011/03/06(日) 08:50:33.24
>>396
馬鹿だなお前w
ゴミレスしなきゃいいじゃん
404 :デフォルトの名無しさん2011/03/06(日) 21:01:09.87
twitterみたいなサービス使ってると、2chはログ検索でしか使わなくなる人が多いのでは。
406 :デフォルトの名無しさん2011/03/08(火) 20:54:12.50
boostのrandomで0以上1未満じゃなくて、
0より大きく1未満の乱数を作れませんか?
408 :デフォルトの名無しさん2011/03/09(水) 12:53:47.39
数式クラスとかってありませんか
R言語並とはいいませんが、式の評価とか代入とか微積分とかあれば
409 :デフォルトの名無しさん2011/03/09(水) 13:05:17.96
>>408
Rを呼び出した方が早くない?
412 :デフォルトの名無しさん2011/03/10(木) 15:16:10.88
ウェブブラウザがjavascriptでなくてc++を直に実行してくれるの出るみたいだけど
boostも使えるのかな
421 :デフォルトの名無しさん2011/03/29(火) 19:45:09.25
>>820

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

そんな事言ったら、男はスカート履いたり口紅塗ったりしたら
いけないってこと???
430 :デフォルトの名無しさん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>
は問題なく通るのですが・・・いったい何が原因でしょうか?
432 :デフォルトの名無しさん2011/04/06(水) 18:36:59.44
VC++ならビルド済みboostライブラリが自動インストールできると書かれていたのでそれを利用したのですが・・・
436 :デフォルトの名無しさん2011/04/06(水) 19:22:20.63
VC++のインクルードファイルにC:\Program Files\boost\boost_1_46_1を設定するだけではだめなのでしょうか?
437 :デフォルトの名無しさん2011/04/06(水) 19:24:00.98
インクルードパスだけじゃなくてライブラリファイルも指定しろ
ライブラリパスの方は~.libが置いてるフォルダな
438 :デフォルトの名無しさん2011/04/06(水) 19:43:19.64
インクルードパス通ってないのになんでインクルード出来てないんだ?
それともインクルードパスは通したがライブラリパスは通し忘れた or 存在を知らないってやつか?
439 :デフォルトの名無しさん2011/04/06(水) 19:44:31.59
ライブラリディレクトリにlibが入っているファイルを追加しましたがエラーが消えないですね・・・
444 :デフォルトの名無しさん2011/04/08(金) 03:51:32.81
書き忘れましたが、そのスレッドで指摘されているBOOST_PP_EQUALに数値を入れても解決されません。
コンパイラはVS2008を使っています
445 :デフォルトの名無しさん2011/04/08(金) 04:01:00.43
すみません。
#include <boost/preprocessor/comparison/equal.hpp>
をしたら自己解決しました。
446 :デフォルトの名無しさん2011/04/16(土) 13:27:19.01
すみません
serializeの侵入型 非侵入型って英語でなんて言いますか?
449 :デフォルトの名無しさん2011/04/21(木) 13:19:37.66
iphoneで動かないのなんてありました?
mm経由でなんでも使えるっぽいですが
452 :デフォルトの名無しさん2011/04/22(金) 10:52:11.38
fusion便利だね
CG関連のライブラリでしか使ってるのみたことないけど
accumulaterも使ってるの?
453 :デフォルトの名無しさん2011/04/22(金) 21:08:36.95
>>452
accumulators は知らんけど Spirit がばりばり使ってる。
454 :デフォルトの名無しさん2011/04/25(月) 15:40:13.45
accumulatorに静的に代入した値って
コンパイルタイムで計算される?
455 :デフォルトの名無しさん2011/04/25(月) 21:15:57.16
void funcRef(shared_ptr<Hoge>& ref = shared_ptr<Hoge>()) {}
デフォルト引数をヌルポインタにしたい場合、これって問題ないですか?
456 :デフォルトの名無しさん2011/04/26(火) 00:21:13.07
>>455
ダメですな。
http://codepad.org/ivr7NQAk

これならおk。
http://codepad.org/6cyqwPkA
457 :デフォルトの名無しさん2011/04/26(火) 04:57:15.86
const shared_ptr<Hoge>& ref = shared_ptr<Hoge>()
458 :デフォルトの名無しさん2011/04/26(火) 08:08:06.84
>>456
>>457
ありがとうございます。
459 :デフォルトの名無しさん2011/05/01(日) 09:26:30.16
なんでconst要るのー?
460 :デフォルトの名無しさん2011/05/01(日) 09:32:52.23
>>459
funcRef() の中でデフォルト指定された ref に値を設定することには意味が無いから、
そういうコードは書けないように言語のルールとして定められているのです。
461 :デフォルトの名無しさん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に何も生成されません
どなたか教えてください
467 :デフォルトの名無しさん2011/05/06(金) 19:16:48.94
Boostってなんで
オブジェクト.メンバ関数()
じゃなくて
関数(オブジェクト)型が多いの?
470 :デフォルトの名無しさん2011/05/06(金) 21:12:51.90
オブジェクトが対応するメンバ関数を持っていなくても
フリー関数ならメンバ関数がなくても「デフォルト実装」にフォールバックできる。
後から専用の処理を追加・削除しても呼び出し側はソースを編集しなくてもいい。
引数の暗黙の変換を利用することもできる。
組み込み型に対しても同じ書式を適用できる。
と色々メリットがある。
471 :デフォルトの名無しさん2011/05/06(金) 21:44:27.93
public操作だけで済むなら、カプセル化の観点からも
性的外出しユーティリティが良いってメイヤーズおじちゃんがゆってた
473 :デフォルトの名無しさん2011/05/07(土) 01:37:20.43
フリー関数でもfriend使えばprivateメンバにアクセスできるしね。
実はメンバ関数は要らない子のような気がしてきた。
476 :デフォルトの名無しさん2011/05/07(土) 13:43:02.91
プログラミング言語C++第3版でも、メンバ関数はできる限り
privateにすべし、って話があるな
477 :デフォルトの名無しさん2011/05/07(土) 15:34:37.82
もはやなんのためのOOPかわからんな
480 :デフォルトの名無しさん2011/05/09(月) 16:14:04.76
>>479
インターフェースはprivateにしないとおもうけどなあ。
>>477
継承はOOPの本質じゃないんじゃないかな?
ポリモがどうしても必要なとき意外使うなって事だと思うんだけど。
490 :デフォルトの名無しさん2011/05/20(金) 06:15:31.08
>>480
〉継承はOOPの本質じゃないんじゃないかな?

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


と俺が思ってるだけで一般的には継承はOOPの重要な要素だけどね
479 :デフォルトの名無しさん2011/05/08(日) 22:48:51.05
メソッドを全部privateにしたらどこからアクセスするん?
482 :デフォルトの名無しさん2011/05/14(土) 16:10:21.87
俺は英文で見かけたよ。どこだか忘れたが。
dll名でググってみれば?
484 :デフォルトの名無しさん2011/05/14(土) 22:24:45.89
>>482
個人で運営なさっている解説サイトとか、メーリング
リスト等には書いてあるんですけど、もう少しオフィ
シャルな情報が欲しいじゃ無いですか。

そう考えて公式サイトを読んでいたんですけど、私の
拙い英語力と集中力じゃさっぱりでした。
483 :デフォルトの名無しさん2011/05/14(土) 20:39:49.15
Boost1.46.1ちゃんのRegexをSTLPortでBuild(Linux)するとエラー吐いちゃうけどどうしたらいいの?
485 :デフォルトの名無しさん2011/05/14(土) 22:41:30.83
Getting Started の Library Naming 書いてあるだろう
486 :デフォルトの名無しさん2011/05/14(土) 22:58:08.96
>>485
ありました!有り難うございます!「6.3 Library Naming」にありましたよ!!

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

jamfaileのコメントとかを必死に翻訳していた自分が情けないです。
有難うございました。
487 :デフォルトの名無しさん2011/05/15(日) 09:11:00.23
Boost Graphに巡回セールスマン問題を解ける
アルゴリズムがあったら名前を教えて欲しい
488 :デフォルトの名無しさん2011/05/15(日) 09:44:19.53
>487
近似解で良ければ metric_tsp_approx
489 :デフォルトの名無しさん2011/05/15(日) 09:45:08.77
>>488
ありがと!
491 :デフォルトの名無しさん2011/05/20(金) 10:54:00.91
http://ja.wikipedia.org/wiki/オブジェクト指向#オブジェクト指向プログラミングの構成要件
情報隠蔽 - これは古典的な可視性の定義である。(?)

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

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

それぞれアトミックな概念かもよく分からずに、仮想関数は静的に型付けされた動的束縛だから、仮想関数や抽象(インターフェース)クラスはC++のOOPの本質のひとつじゃね?って感じで深みにハマって結局訳わかめになる。
496 :デフォルトの名無しさん2011/05/20(金) 15:36:30.29
Data + Algorithm = Programと言えばニクラウス・ヴィルトだが、要はオブジェクトとは
データとアルゴリズムのまとまった単位、即ち一つの完結した部分プログラムであって、
それの寄せ集めが全体としてのプログラムであるという観点および方法論のことを
オブジェクト指向と呼んでいるのだと思う。
それとは別にストラウストラップがカプセル化・継承・多態性をC++言語による
オブジェクト指向サポートの基本要素としたのは一つレイヤーの上がる話だ。

// ちょっとBoostとは関係ない話になったが
497 :デフォルトの名無しさん2011/05/21(土) 04:37:29.17
複数人で開発するようになると、
継承はコードが読みづらくなるから避けてほしい。
499 :デフォルトの名無しさん2011/05/21(土) 09:59:29.67
クラス構成が仕様で決まってないってことか
問題はむしろそっちだな
502 :デフォルトの名無しさん2011/06/03(金) 21:52:25.68
shared_ptrつかいまくりのプログラムで問題が無いか調べるにはどうしたらいいですか?
プログラム終了時に例外とメモリリークでなければOK?
503 :デフォルトの名無しさん2011/06/04(土) 00:16:10.77
終了時に全部開放されてるか調べる。
終了順に依存関係があるものは設計で対応してあるか確認する。

こんなもんじゃね。楽するためのものだから、判ってて使ってるなら気にしなくていいとおもうが。
心配なら、全部resetしたらw
504 :デフォルトの名無しさん2011/06/04(土) 18:26:55.96
>>503
ありがとうございます
505 :デフォルトの名無しさん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())に相当する処理を追加したい

507 :デフォルトの名無しさん2011/06/07(火) 20:19:29.36
そんなコンテナ捨てちまえ
509 :デフォルトの名無しさん2011/06/08(水) 01:35:32.50
>>505
できた。
http://codepad.org/rQiAg0yO

けど、 >>507 のほうが正しい気がする。
510 :デフォルトの名無しさん2011/06/08(水) 10:06:56.11
>>509
なるほど、別のスマポを作ってしまうというのは盲点でした
513 :デフォルトの名無しさん2011/06/09(木) 11:06:07.76
vector<any> の中身を順番にostreamに突っ込みたいんですが,
組み込み型ならある程度typeごとに条件わけで書けるのはわかるんですが,
ユーザー定義型の場合はどうやって動的にany_castしたら良いんでしょう??
placeholderのtype()に合うように自動的にcastってできるんでしょうか.
初心者ですいませんorz
514 :デフォルトの名無しさん2011/06/09(木) 19:35:19.60
>>513
作ったクラスに<<をオーバーロードすればいいじゃない
515 :デフォルトの名無しさん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 :5132011/06/09(木) 22:21:11.39
動的にany_castする方法はわからなかったですが,
やりたいこと自体は基底にオペレータを定義して,
あとは多態性で解決できました.
できてみれば簡単でした…なんで思いつかなかったんだろう...
ありがとうございました.
517 :デフォルトの名無しさん2011/06/09(木) 23:19:22.71
>513
静的な解決はできないから動的なマルチディスパッチしかない。

多態で済むんだったら、普通に基底ポインタで保持したら?
518 :5132011/06/10(金) 11:36:36.57
>> 517
静的にはムリなんですね.そりゃそうか...
それで行きます!
519 :デフォルトの名無しさん2011/06/14(火) 00:01:56.65
property_treeのiniファイルパーサーですけど、セクションとキーの文字列を
大文字小文字の区別をつけないようにできないんでしょうか?
APIのGetPrivateProfileString()は、大文字小文字の区別が無かったので
すでにあるINIファイルをこれで読み込もうとすると、大文字だったり小文字
だったりするので、設定が見つからなかったりするんです。

520 :デフォルトの名無しさん2011/06/14(火) 08:27:27.95
>>519
basic_ptree の第 3 テンプレートパラメータで大文字小文字無視する比較を渡せばいいんじゃないかな。
521 :デフォルトの名無しさん2011/06/14(火) 08:36:03.92
同じことだけど ptree → iptree (wptree → wiptree)
523 :デフォルトの名無しさん2011/06/14(火) 21:45:32.04
>>521
やってみます!ありがとうございます。
522 :デフォルトの名無しさん2011/06/14(火) 09:04:35.81
property_treeもう手放せないんだけど、-O3でバイナリが
数100k膨れ上がるのは何とかならんのか
525 :uy2011/06/21(火) 07:41:23.38
【ノード】uyプログ... Part4.0【更なる未来】
http://hibari.2ch.net/test/read.cgi/prog/1306135242/

ゴミが積もって四スレ目
528 :デフォルトの名無しさん2011/06/30(木) 00:32:47.62
geometry楽しみ
529 :デフォルトの名無しさん2011/06/30(木) 06:53:43.21
>>528
なんも動きがないんだが大丈夫なのかアレ
532 :デフォルトの名無しさん2011/07/03(日) 01:27:40.58
TMP使うソースのコンパイルは
指示する度にうんこしてこれる
534 :デフォルトの名無しさん2011/07/03(日) 12:31:34.50
マルチコアCPU使ってる場合はコンパイラオプションに/MP付ければ多少速くなるよ
538 :デフォルトの名無しさん2011/07/13(水) 22:55:11.55
<boost/archive/binary_iarchive.hpp>を使用すると警告が出てくるのですがこれはどうにもならないのでしょうか
インクルードしているだけで出てくるのでコードが悪いわけではなさそうですが・・・
547 :デフォルトの名無しさん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
540 :デフォルトの名無しさん2011/07/13(水) 23:00:22.26
んー、そうなんですけど利用したらなんかバグとか出そうで心配なのですが・・・
データが失われる可能性とか出てるので
544 :デフォルトの名無しさん2011/07/14(木) 01:36:18.29
そうですね。申し訳ない
長かったのでこちらに
ttp://codepad.org/ylgwJM88
545 :デフォルトの名無しさん2011/07/14(木) 01:38:01.28
>>544
std::streamsizeってstd::size_tのtypedefだったと思うけどどうしてそれに対する警告が出てるの?
548 :デフォルトの名無しさん2011/07/14(木) 14:08:54.03
どうやら1.47でも出るみたいですね
・・・しかし英語ができなくて報告の仕方がわからない
549 :デフォルトの名無しさん2011/07/14(木) 16:41:24.32
う〜BOOST_FOREACHって意外と遅かったのねぇ、便利だから使い過ぎてしまったよ
書き直しorz
551 :デフォルトの名無しさん2011/07/14(木) 19:51:12.74
>>594
何年も前の話だけど、BOOST_FOREACH のコンパイルされたアセンブラコードを見て、
あまりのひどいコードに愕然としたことがあったよ。

以来使っていない。
552 :デフォルトの名無しさん2011/07/15(金) 00:27:44.82
foreachならopenmpやtbbにもあったと思うのでそっち使ってみてはどう?
554 :デフォルトの名無しさん2011/07/15(金) 21:51:05.85
http://eetimes.jp/content/3156
http://parallel-for.sourceforge.net/tbb.html

公式ドキュメントは日本語検索だと出づらいが、サンプルコードは出てくるぞ
555 :デフォルトの名無しさん2011/07/17(日) 22:00:44.81
xpressive_static.hppをプリコンパイルに入れただけでpchが40MB以上膨らんだでござる
556 :デフォルトの名無しさん2011/07/17(日) 22:03:18.06
boostの中の人って頭いいのにアホなのかな
あの技術と熱意を新低級言語開発に回してたらいまごろとっくにもっと便利なもんできてただろ
565 :デフォルトの名無しさん2011/07/23(土) 02:01:43.28
>>556
boostより便利なものってなんだよw
567 :デフォルトの名無しさん2011/07/23(土) 07:01:26.61
>>565
python最強
569 :デフォルトの名無しさん2011/07/25(月) 01:20:20.78
>>567
そのうちC++でboost使うほうが楽になるよ。
558 :デフォルトの名無しさん2011/07/17(日) 22:32:27.26
言語の核の部分は人数多くてもしょうがない。
重要なのは汎用性と一貫性で、技術と熱意は邪魔なだけ。

低級言語ならForth最強だろ。
560 :デフォルトの名無しさん2011/07/20(水) 21:39:22.18
property_treeのini_parserなんですが、XP以降だと問題ないのですが
Win2kだと正しくiniファイルが読み込めないのですが、対応してないって
ことでしょうか?
564 :デフォルトの名無しさん2011/07/22(金) 22:07:40.02
>>560
自己レスです。

Win2kの問題では無く、ファイルのパス名に日本語を含んでいるためでした。
read_iniで直接ファイル名を指定せずに、ifstreamで開いてからそのストリームを
read_iniに指定することにしました。
561 :デフォルトの名無しさん2011/07/20(水) 21:57:19.39
どんなふうにできないのか?
563 :デフォルトの名無しさん2011/07/20(水) 22:18:35.25
>>561
Win2kのPCにVSが入ってないんで、まだ詳しく見れてません。
ただ、現象的には、

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

のいずれかですね。
この場合は、デフォルト文字列になるようにしてるんですが、
読み出そうとしている文字列がすべてデフォルトになっちゃってるんで。
566 :デフォルトの名無しさん2011/07/23(土) 04:24:22.55
いい加減boost.GUIを作れよ
568 :デフォルトの名無しさん2011/07/24(日) 01:16:39.11
>>566
やってみろ
そして、どこが「boost」なのか説明してくれ
574 :デフォルトの名無しさん2011/07/27(水) 15:45:22.63
c++0xのlambdaと同じ様なものは
boost組み合わせてできないものでしょうか

_1

じゃなくて

x

とか変数に使いたい
577 :デフォルトの名無しさん2011/07/27(水) 22:02:54.24
>>574
_1 の別名として使えればいいだけなら
boost::lambda::placeholder1_type X;
とすれば X が _1 と同じように使える。
Boost Phoenix で似たようなことしつつ let 使った方がもう少し望みに近くなるかもしれない。
575 :デフォルトの名無しさん2011/07/27(水) 19:05:09.41
shared_ptrってマクロでマルチスレッドをONOFFできるけど
ONのshared_ptrとOFFのshared_ptrを共存させるのってアリなの?
576 :デフォルトの名無しさん2011/07/27(水) 20:54:57.72
>>575
ない
578 :デフォルトの名無しさん2011/08/11(木) 19:09:09.86
BOOST_CHRONO_HEADER_ONLY マクロ有効にしても.libリンクしろって怒られます
date_timeとかは普通にヘッダオンリで使えてるんですけど、Chronoの場合なんか他に必要なんですか?
579 :デフォルトの名無しさん2011/08/11(木) 19:31:03.92
自己解決しました
BOOST_SYSTEM_NO_LIB と BOOST_ERROR_CODE_HEADER_ONLY も有効にしたらできました・・・
もっと調べてから聞くべきだった
581 :デフォルトの名無しさん2011/08/24(水) 11:13:47.94
https://gist.github.com/1167135

spirit 試してみてます
上記のコードで helper って関数書かないで、
39 行目みたいにしたいんだけど、うまく書く方法ありませんか?
583 :デフォルトの名無しさん2011/08/29(月) 16:25:44.13
matlabとか他の計算結果を全部ublasの形式に合わせて出力してるんだが
単純に数値並べただけの方が便利だったりするのかな
584 :デフォルトの名無しさん2011/08/29(月) 21:45:43.13
>>583
その計算結果の用途によるとしか……
ublasへの入力が多いならそれでいいんじゃね?
586 :デフォルトの名無しさん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 :デフォルトの名無しさん2011/08/31(水) 03:28:52.43
588 :デフォルトの名無しさん2011/08/31(水) 09:40:03.66
>>586
エラーの内容も書かずに云々
589 :デフォルトの名無しさん2011/09/01(木) 21:32:00.35
boost::property_tree で要素の削除ってどうやってするんでしょうか?
たぶんeraseだとは思うんですがうまくいきません。
593 :デフォルトの名無しさん2011/09/05(月) 14:55:53.84
>>589
自己レスです。

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

だれかご存じないでしょうか?
594 :デフォルトの名無しさん2011/09/05(月) 15:06:36.43
>>593
さらに自己レス。

[Section]
Key1=1234
Key2=9876

と有ったときにKey2は消せるんですが、Key1を消すと、write_ini()パーサーで
例外が発生します。
これって、write_ini()のバグ?
595 :デフォルトの名無しさん2011/09/05(月) 20:03:55.89
>>594
またまた自己レスです。

どうも、erase()またはwrite_???()がバグっているように思える。
iniパーサーでなくて、xmlやjsonパーサーでもerase()してwriteすると
おかしくなる。erase()したあと、ptreeをたどるとeraseしなかった要素は
残っているようなので、write_???()がくさい。
597 :デフォルトの名無しさん2011/09/05(月) 20:11:17.10
>>595
やっぱerase()がおかしい。earse()したあと別のptreeにコピーすると
異常が出てしまう。(clone()ルーチンで)
erase()は使えないなぁ。
これ、ptreeってmulti_index_containerですよね。そっちもバグってるってことか?
591 :デフォルトの名無しさん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 :デフォルトの名無しさん2011/09/05(月) 08:59:00.97
>>591
別にまずくはない。
boost::threadのデストラクタはdetach()を呼び出す。つまり、threadオブジェクトと
スレッドの寿命は同期していないし、スレッドが終わるまで待ってくれたりもしない。
同期させたければthreadオブジェクトを破棄する前にスレッド関数を抜けるように
フラグやcondition_variable等で指示しておき、(thread::join()等で)スレッドが終了した事を確認してから、
threadを破棄する必要がある。
598 :デフォルトの名無しさん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 :デフォルトの名無しさん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 :デフォルトの名無しさん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 :デフォルトの名無しさん2011/09/06(火) 08:06:09.21
>>600
おお!うまくいきました!
ありがとうございました。

なるほど、最下層の要素を削除するときはこうしないといけないんですね。
boostにも削除のサンプルを入れて欲しいな〜。
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配下にコピーしましたが結果同じでした。
 http://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 :デフォルトの名無しさん2011/09/06(火) 11:58:31.75
突っ込んだ所で追加のライブラリ ディレクトリに入ってなきゃダメだろ
606 :デフォルトの名無しさん2011/09/06(火) 12:51:54.38
607 :6042011/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 :デフォルトの名無しさん2011/09/08(木) 04:08:47.89
http://www.kmonos.net/alang/boost/classes/asio.html
ではgetlineによって1行づつしか読んでいませんが
char *buf = new char[size];
s.read(buf,size);
のようにして一気に読み込みたいのですがどうすればいいでしょうか
609 :デフォルトの名無しさん2011/09/12(月) 00:07:38.37
フェニックスがFC++の後継だそうだけど
いろんな意味で中途半端すぎないか
それともこれから発展していくのだろうか
610 :デフォルトの名無しさん2011/09/12(月) 01:17:16.20
arrayって宣言時以外に入力するには1つずつ入れないとダメ?
面倒くさいんだけど
613 :デフォルトの名無しさん2011/09/13(火) 21:55:59.68
VS2005使ってるのですがboostが正しくインストールされてるか簡単に確かめる方法ないですか?
617 :デフォルトの名無しさん2011/09/20(火) 11:58:01.13
2chの過去ログみたら
eggが誰もレビューされないでレジェクトだって?

公式の説明はどうなってるの
今ならレビューするのに
618 :デフォルトの名無しさん2011/09/20(火) 12:32:36.15
619 :デフォルトの名無しさん2011/09/20(火) 13:12:27.24
一度レビューに上ったこともあるんだぜ。
あまりにもレビュー数が少なかったので、落とされたが。
620 :デフォルトの名無しさん2011/09/20(火) 13:38:38.71
なんでドキュメント改良して再チャレンジって話にならなかったの?
621 :デフォルトの名無しさん2011/09/20(火) 15:00:38.77
本人が長いこと更新してないみたいだし
誰かが本人と連盟扱いでドキュメント更新したものを再チャレンジしたらダメなのかな?
622 :デフォルトの名無しさん2011/09/29(木) 16:11:38.71
VS2008ではワーニングが出なかったんだが、VS2010にすると

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

っていっぱい出るんだが、どうすればワーニングが出ないようにできるんでしょうか?
コンパイルそのものは、正常終了してます。
623 :デフォルトの名無しさん2011/09/29(木) 18:19:11.04
boost-coroutineはx84-64で動かないって本当ですか?
2010年にバージョンアップしたみたいですが
x84-64で動かないってコメントみかけるのが2009年より前のものばかりなので
ひょっとして改善したのかと
627 :デフォルトの名無しさん2011/09/30(金) 07:13:20.60
progress_displayさんはboostの癒しキャラ
技巧凝らしたソースばかり見ていたら疲れるだ
629 :デフォルトの名無しさん2011/09/30(金) 21:26:13.06
progress_displayに
呼び出し元プロセスとの進捗状況をやりとりする機能を実装し
そのプロトコルも規格化したりすると延命できるのかな。
665 :デフォルトの名無しさん2011/10/08(土) 19:09:47.22
誰か>>629とMPIにも対応させてくれ
630 :デフォルトの名無しさん2011/09/30(金) 21:34:09.65
progress_displayやprogress_timerの実装に使われてる大元のBoost.Timerの刷新のついでだからどうしようもないな
633 :デフォルトの名無しさん2011/10/01(土) 10:52:59.90
この際eggやovenをだな
640 :デフォルトの名無しさん2011/10/04(火) 19:22:39.08
>>633
>eggやoven
boostライセンスだから
作者の許可なしで「改良したもの」をboostに提案しても問題ない予感がするのだが
もちろん作者の名前も入れる
634 :デフォルトの名無しさん2011/10/01(土) 13:07:50.36
レビューがBoostConと重なったためにまともに評価されなかったんだよね>egg
どう考えてもovenの方がrangeexより優れてる筈なのに・・・どうしてああなった
635 :デフォルトの名無しさん2011/10/01(土) 13:51:24.87
|をパイプ処理に使う仕様とかはqtみたいな言語のサブセット的な巨大フレームワークを構築してその中に隔離しておいてくれ
636 :デフォルトの名無しさん2011/10/03(月) 09:54:06.59
oerator |  
の定義って斬新だな
フェニックスも大概独自世界構築してるけど| の方がわかりやすくてええわ
638 :デフォルトの名無しさん2011/10/03(月) 13:11:45.27
シェルのパイプからの発想なんだろうけどC++で順序に意味のある結合に|を使うのは一般的になって欲しくない
643 :デフォルトの名無しさん2011/10/04(火) 20:37:41.95
誰かが作ったのを別人が改良というのはよく見るから
改良したらいいんじゃないの?
646 :デフォルトの名無しさん2011/10/05(水) 19:17:28.31
そうだったのか。。

でも確かに、親善大使という言い方に、しっくりくるものを感じる。。。
647 :デフォルトの名無しさん2011/10/06(木) 00:55:35.76
まぁ初めてboost触る人にSpirit薦めるわけにはいかないしねぇ
俺はlexcal_castから入門したけど
656 :デフォルトの名無しさん2011/10/06(木) 14:35:14.08
scoped_arrayからかな・・・auto_ptrの配列版探していて知った

ところでprogress_displayを実用した著名ソフトってあるのかしら
658 :デフォルトの名無しさん2011/10/06(木) 19:29:22.00
>>656
めっちゃ有名なライブラリで使ってるよ。

Boost C++ Libraries
659 :デフォルトの名無しさん2011/10/06(木) 23:55:45.01
一番最初につかったのが、progress_displayだわ
まぁLet'sboostみながら一番わかりやすそうだったからってだけだが
661 :progress_display2011/10/08(土) 01:20:12.74
私の後継に相応しい者はいないようだな
これではまだまだ親善大使を退くわけにはいかんう・・・
663 :デフォルトの名無しさん2011/10/08(土) 17:38:11.23
Boost.Timerv2に対応したprogress_displayです!!!1111
みたいにboost.develに投稿してまずはsandbox入りを目指そう
670 :デフォルトの名無しさん2011/10/25(火) 14:09:17.02
「boost::this_thread」っていう名前空間の「this」ってどんな意味なのでしょうか?
どなたかご存知です?
673 :デフォルトの名無しさん2011/10/25(火) 14:24:37.71
>>670
"this"の意味は「この」。
"this_thread"で「このスレ」。
674 :6722011/10/25(火) 19:21:41.47
>>620
あれ?2回も投稿してるし、しかもageてるよ。申し訳ない。

>>671, >>673
ありがとうございます。
助かりました。
説明もらって、Webで見つけたサンプル達を眺めたら理解できました。
671 :デフォルトの名無しさん2011/10/25(火) 14:12:05.06
このスレ
675 :6722011/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)に入れたのとで、どのように使い分ければいいのですか?
「中断ポイント」として、利用されるのが前者、程度の違いでしょうか?
何か他に大事なことを知らない気がしています…。

687 :6852011/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」にあわせられていた。
確信無いので参考までに。
677 :デフォルトの名無しさん2011/10/27(木) 18:00:45.65
property_treeのINIパーサーだけど、XMLパーサーみたいに書きこむときに
コメントを再現できないんだろうか?
今は無視して読み飛ばしてるみたいだが。
680 :デフォルトの名無しさん2011/10/30(日) 21:20:35.33
timed_join
681 :6792011/10/31(月) 02:40:46.69
>>680
!!そうかっ!
感動した!
ありがとうございます。
682 :デフォルトの名無しさん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 :デフォルトの名無しさん2011/11/01(火) 01:47:51.17
>>682
namespace に追加禁止の意味がわからん。
684 :デフォルトの名無しさん2011/11/01(火) 01:54:37.13
Xってどこだよ、おいといて、>>682でHogeの中に置けないならnamespace boostに置く
685 :デフォルトの名無しさん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のインスタンスメソッドとか呼べないのですけど…。
さっぱりわかりません。
689 :6792011/11/05(土) 06:15:53.53
join()・timed_join()(成功)・detach()を複数回実行した時の動作は未定です?
timed_join()を繰り返して、起動した全てのスレが終了したか検知するコードを書いて今はうまく動いているのですけど、
幾つかのスレが終了している最中に、もしも別のスレが起動したらどうなるのかな?デタッチした領域は開放されているから再利用される可能性があるかな?なんて考えて…。
それとも、スレの起動箇所ごとに、アタッチするメモリ番地が決まってるのかな。
そうすると、forやwhileで起動する際に説明がつかないし…。
未定か。
690 :デフォルトの名無しさん2011/11/05(土) 11:36:39.78
なに言ってるかわからないがたぶん心配してるようなことにはならないだろ。基本的なところを勘違いしてるように思える。
691 :6892011/11/06(日) 22:23:39.49
>>690
レスありがとうです。

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

ところで、さっきと今との、経過時間をmillisecで取得したいのですけど、Boostを利用すると比較的容易な気がするのですが、どのクラスを利用すればいいでしょうか?
boost::posix_time付近で探しているところですが。
692 :6892011/11/06(日) 22:34:54.18
ageてしまいました。すみません。
Win32APIでみつけることができました。GetTickCountで差分をとればいけそうでした。

もしBoostで、同じようなことが出来れば御教示ください。出来れば環境依存は少ない方がいいと思いますし。
696 :デフォルトの名無しさん2011/11/08(火) 17:34:26.68
半年くらい前までは[スマポ]で検索するとスマートポインタのサイトがずらっと出てきたのに
今出てこなくなってるな
こういう新しいものが出たときにもともとあった情報の取得の障害になることをなんていうんだろうね

マイクロソフト ワイヤレス ブルートラック マウス Arc Touch Mouse RVF-00006
マイクロソフト ワイヤレス ブルートラック マウス Arc Touch Mouse RVF-00006