[表示 : 全て 最新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/

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

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

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

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

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

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

C++0x 9
pc12.2ch.net/test/read.cgi/tech/1269623636/

3 名前:デフォルトの名無しさん mailto:sage [2010/05/28(金) 11:51:54 ]
Boost Sandbox
https://svn.boost.org/trac/boost/wiki/BoostSandbox

Boost Vault
www.boostpro.com/vault/

Loki
sourceforge.net/projects/loki-lib/

JTC1/SC22/WG21 - The C++ Standards Committee
www.open-std.org/jtc1/sc22/wg21/

POCO, the C++ Portable Components
www.appinf.com/poco/info/
sourceforge.net/projects/poco/

The unofficial BCB Boost patches
bcbboost.sourceforge.net/

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

5 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 22:02:12 ]
ublas::vectorには==演算子が定義されていないのでしょうか?

6 名前:4 [2010/05/30(日) 10:57:08 ]
>>4
fiber\build\Jamfile.v2の
14行目の import pyutils ; を消す。
29行目の [ pyutils.linkage ] を "WindowsPE" に変更。
53行目の [ pyutils.architecture ] を "i386" に変更。
(pyutils.py の実行結果を直で書いた・・・)

で解決しました。

7 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 11:27:35 ]
#include <boost/iostreams/stream.hpp>
#include <boost/iostreams/device/array.hpp>
#include <iostream>

namespace io = boost::iostreams;
char buf[] = {1, 2, 3, 4, 5};

#if 0
// (A)
io::array_source src(buf);
io::stream_buffer<io::array_source> sb(src);
#else
// (B)
io::stream_buffer<io::array_source> sb(io::array_source(buf));
#endif

std::istream s(&sb);

(B)の場合はコンパイルが通るのですが、(A)の場合だと
> C2664: 'std::basic_istream<_Elem,_Traits>::basic_istream(std::basic_streambuf<_Elem,_Traits> *,bool)' : 1 番目の引数を
> 'boost::iostreams::stream_buffer<T> (__cdecl *)(boost::iostreams::array_source)' から 'std::basic_streambuf<_Elem,_Traits> *' に変換できません。
となりますが、理由がわかりません。
array_sourceを直接渡すか変数を介すかで、何故違いが出るのでしょうか?

VC++2010 EE + boost 1.43.0

8 名前:7 mailto:sage [2010/05/31(月) 11:47:01 ]
いろいろ試してみたところ
> io::stream_buffer<io::array_source> sb(io::array_source(buf));
が関数プロトタイプと解釈されている事が原因のようです。
これは言語的に正しい解釈なのでしょうか?

9 名前:デフォルトの名無しさん mailto:sage [2010/05/31(月) 20:37:37 ]
>>8
Yes.
Effective STL に載ってる有名な落とし穴。

10 名前:7 mailto:sage [2010/06/02(水) 11:10:46 ]
>>9
io::stream_buffer<io::array_source> sb(io::array_source buf);
という風に解釈されるんですね。
遅くなりましたがありがとうございました。



11 名前:デフォルトの名無しさん mailto:sage [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」を指定しました
www.kmonos.net/alang/boost/build.html

12 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 16:55:39 ]
toolset=msvc-9.0

13 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 17:33:04 ]
うおおおできたぁあああああああ!!!

有難うございます助かりましたm(_ _)m

14 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 01:50:23 ]
bjam toolset=msvc-8.0 variant=debug,release link=static threading=multi runtime-link=static stage
bjam toolset=msvc-9.0 variant=debug,release link=static threading=multi runtime-link=static stage
bjam toolset=msvc-10.0 variant=debug,release link=static threading=multi runtime-link=static stage

ウチはこれで容量節約

15 名前:デフォルトの名無しさん mailto:sage [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

16 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:08:19 ]
A=[B^t C^t]^t ですね。すみませんでした。

17 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:49:15 ]
ベクトルA,B,C と行列Xになんの関係もないじゃん。

18 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 07:26:59 ]
そうですね。A,B,CとX,Y,Z,Wの間には関係がないです。
B,CをもとにA、Y,Z,WをもとにZをそれぞれ定義したいという感じです。

19 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:48:55 ]
>>15
ublas使うなら ttp://d.hatena.ne.jp/blono/archiveを1から読むといいよ
15が聞きたいことも頻繁にやってる(projectとかsliceとか)

20 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:06:06 ]
15です。
そのサイトは非常に参考にさせて貰ってます。

たぶんですけどsliceからのswapでいけるのかなぁ〜と考えてます。
ともかく色々試してみます。質問に答えてくれてありがとう。



21 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 21:45:16 ]
ビルドしたライブラリ(.lib)の名前の後ろにつく文字列に、mtとmt-sという
2種類のものがあるのですが、どのような違いがあるのでしょうか?
mtというのは、VC++のランタイムライブラリ設定で"マルチスレッド"を
選んだからだと思うのですが、sという文字列の意味がわかりませんでした。
初歩的な質問かもしれないですが、教えてもらえるとうれしいです

22 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 21:46:38 ]
static

23 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 22:40:53 ]
www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#library-naming

24 名前:デフォルトの名無しさん mailto:sage [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にもなるという

25 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:29:21 ]
weak_ptrってshared_ptrが無効かどうか知る場合に使えばいいですか?



26 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:31:26 ]
>>25マルチすんな

27 名前:デフォルトの名無しさん [2010/06/21(月) 21:29:27 ]
何が悪いんだよ
おまえ goto 有害説にしか見えないぜ

28 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 08:39:32 ]
>>25
いいえ

29 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 10:58:33 ]
>>26
ごめんなさい・・・
スルーされたもんで

30 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:50:16 ]
>>29
そんな言い訳が通用したらマルチは存在しない。
常識で考えればちゃんと取り下げてから来いよ。




31 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:52:41 ]
>>25
できるけど、普通shared_ptrはコンストラクタで初期化するのだし
そういうコードが必要になるような設計に問題があると思う
if (p != NULL) {...} がバグの温床だからやめようというのと同じで
if (p.use_count()) {...} ってのも関心しない
検索してもなかなか出てこないのには好ましくないから
人に見せるような綺麗なプログラムにはあまり出てこないという背景がある

32 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 18:26:38 ]
p.use_count() はともかく

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

あたりはかなり典型的かつ有用な idiom のような?

33 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 20:36:20 ]
ブーリアンコンテキストでチェックするのは普通でしょ
そのためにsafe boolが定義されてるんだから

use_count()はデバッグやテストのためであって
製品版では使うなとドキュメントに書いてあったはず

34 名前:デフォルトの名無しさん [2010/07/02(金) 17:48:50 ]
へえ

35 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 10:17:00 ]
ublasって
純粋なCと速度はあんまり変わりないの?

他のboostもコンパイルに時間かかるだけで実行時間は純粋なCとあまり変わりないの?

36 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 10:36:39 ]
純粋なCってなんだよ
この世には不純なCがあるのか?

37 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 11:30:27 ]
全てはアセンブリ言語に変換・・・アセンブルされ、リンクし、バイナリは天に召される。
動けわがプログラムよ!

38 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 11:53:17 ]
天に召されたらうごかないんじゃね

39 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 15:04:32 ]
天はCPUなり

40 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 15:13:58 ]
三途のバスを越え、閻魔CPUの裁きが下るそのとき、
あなたの運命は定まるでしょう。



41 名前:デフォルトの名無しさん [2010/07/09(金) 10:47:13 ]
boost::regex hosii("hoge ?\(");//boost::reg_expression<char> regex = 正規表現;にするとできない。
boost::match_results<const char*> results;//←もうこの辺から::を押しても出てこない
boost::regex_search(data, results,hoge);
fputs(results.str(0), wfp);←ここでエラー

boostが全然できません
error C2664: 'fputs' : 1 番目の引数を 'std::basic_string<_Elem,_Traits,_Ax>' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
1> with
1> [ _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
キャストする

error C2440: '<function-style-cast>' : 'std::basic_string<_Elem,_Traits,_Ax>' から 'char' に変換できません。
1> with
1> [ _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
助けてください
簡単にC++で正規表現できるんじゃないんですか?VC++2008EE notCLI 正規表現で文字列取得して配列に入れたいだけです。どうすれば良いのでしょうか?

42 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 11:05:23 ]
エスケープシーケンス
std::string::c_str()
まずC++の基礎を何とかしてください。

43 名前:デフォルトの名無しさん [2010/07/09(金) 11:21:56 ]
ありがとうございます。一応コンパイル通りました
results.str(0).c_str()
こんなのがあるなんて全然知りませんでした。

44 名前:デフォルトの名無しさん [2010/07/09(金) 14:00:41 ]
詰みました
boost::regex hosii(" *hoge *\(");←ここで止まります。ハンドルされていない例外ですと
boost::match_results<const char*> result;
boost::regex_search(data, results,hosii);
fputs(results.str(0).c_str(), wfp);
何が間違ってるのでしょうか?
エスケープシーケンスが正しくないかもしれませんみたいな警告が出てましたが何か間違ってますか?

45 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 14:08:24 ]
\→\\

46 名前:デフォルトの名無しさん [2010/07/09(金) 14:14:35 ]
>>45
ありがとうございました
一見\で\が文字化されそうですね

47 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 14:54:13 ]
簡単さならxpressiveがヘッダファイルだけで済んで手軽
Static版の文法覚えちゃえば処理速度も期待できる
ただしコンパイル時間は延びる

48 名前:Regex mailto:sage [2010/07/10(土) 01:03:17 ]
ぼくもほめて(´;ω;`)

49 名前:progress_display mailto:sage [2010/07/10(土) 05:24:22 ]
まだまだ未熟だな。

50 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 08:51:21 ]
ublasは中身替えられるから
ATLASなどを使えばSIMD対応で速いと聞く
ただATLASのコンパイルという壁が・・



51 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:17:03 ]
regexはユーザーが入力した正規表現をそのまま渡しても平気かな?セキュリティーホールになったりしない?

52 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:30:03 ]
Xpressive VC2008だと山のように警告が出る

53 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 12:17:27 ]
そうか?型の整合性さえ取れれば何も言われないけどな
山のようにって言っても一部の警告がテンプレートの展開で連鎖してるんだろ

54 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 23:54:14 ]
Boost.Xpressiveサイコー
でも標準入りを果たしたStd.Regexの汎用性には負ける。



55 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 00:09:26 ]
RegexってインタプリタパターンとかDSLになるん?

56 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 20:18:20 ]
Regexはインタープリタ
XpressiveはTMP、インタープリタ、両対応。

57 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:54:07 ]
>>55
> インタプリタパターン
> DSL
って何?パターン?
よく知らないんだけど、正規表現の業界用語?


58 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:01:35 ]
>>57
デザインパターン

59 名前:57 mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 08:01:49 ]
> DSL
Domain Specific Language
分野特化言語



61 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 10:30:16 ]
>>60
ありがとう。


62 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:46:25 ]
Interpreter パターンとか Visitor と Composite 組み合わせて ParseContext 作っただけにしか見えないわ

63 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:33:35 ]
実装詳細を見てわかった気になるヤツって多いよね

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の解決策教えてよ。友達いないんだ。さみしいの。

66 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 06:20:17 ]
lists.apple.com/archives/carbon-dev/2006/Aug/msg00400.html
これか、違うか?

67 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 23:47:39 ]
それっす。有り難う。

68 名前:デフォルトの名無しさん mailto:sage [2010/07/20(火) 11:55:02 ]
OSXと関係ないが、VC++は<c**>でincludeしてもstdにならないんだよな確か

69 名前:デフォルトの名無しさん mailto:sage [2010/07/20(火) 15:14:39 ]
>>68
標準関数はstdに入ってるよ
同時にグローバル名前空間にもぶちまかれるが

70 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 11:56:17 ]
www.atmarkit.co.jp/news/200909/07/lltv02.html
boostより抽象度は高そうなんだが



71 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 13:21:34 ]
>言語と戯れよう
プログラミング自体が目的になってる方は死んで下さい

72 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 14:37:08 ]
VC++2010だと、BOOST_SCOPE_EXITとかBOOST_FOREACH使うとクラスビューの
関数解析結果がおかしくなるんだが・・・

73 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 15:22:58 ]
>>71
MPLの変な文法おぼえるよりlisp覚えたほうが得
どうせ生成されるCは同じなんだし

多分、動く奴はこれ

homepage.mac.com/naoki.koguro/prog/dyncomp/index-j.html

74 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 15:27:56 ]
どこの馬の骨ともしれぬジャップがでっち上げた俺ライブラリなぞ論外

75 名前:デフォルトの名無しさん [2010/07/22(木) 16:54:25 ]
そういわずに育ててやれよ

76 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 17:47:33 ]
これってジェネレーラーはLispでかかれてるんかいな?
落としてみたけどS式書いてあるファイルがみつからんよ??

77 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 02:56:10 ]
本当の本体はGaucheのソースの中らしい

78 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 16:27:02 ]
Gaucheのソースを解凍
lib/cgen
の下

79 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 16:28:51 ]
なるほど、サンキュ!

80 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 16:37:18 ]
Gaucheソース
ext/uvector
のMakefile
に使用例



81 名前:デフォルトの名無しさん mailto:sage [2010/07/24(土) 12:02:15 ]
alohakun.blog7.fc2.com/blog-entry-586.html
lispから読めるCを生成する別な方法

82 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 04:40:34 ]
boost-buildと、boost-jamの関係を教えてください。

83 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 23:37:31 ]
恋人

84 名前:デフォルトの名無しさん mailto:sage [2010/08/06(金) 05:29:27 ]
英語のドキュメント読んでましたが、よく分かりませんでした。
まじめにお願いします。

85 名前:デフォルトの名無しさん mailto:sage [2010/08/07(土) 21:52:40 ]
lover

86 名前:デフォルトの名無しさん mailto:sage [2010/08/07(土) 23:06:13 ]
boostjamはインタプリタ

87 名前:デフォルトの名無しさん mailto:sage [2010/08/08(日) 23:56:10 ]
gauche.cgen.cise
のコード読んでるんだが、これあったらboostいらないかもしれない

88 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 06:35:05 ]
comp.lang.lispに書いてること信じるなら
thinlispの方がgauche.cgen.ciseよりすごいかもしれない
makefile *.hまで生成するっぽい

89 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:17:55 ]
a

90 名前:デフォルトの名無しさん mailto:sage [2010/08/16(月) 20:26:00 ]
>>70
の使い方をまとめた

CiSE simple example
d.hatena.ne.jp/niitsuma/20081113/1281521109




91 名前:デフォルトの名無しさん [2010/08/17(火) 03:24:37 ]
1.44
Boost C++ Libraries
www.boost.org/


92 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 09:18:48 ]
>>90
これデバッグはしやすい?

93 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 10:19:11 ]
>>90
別にスレ建てたほうが注目してもらえるよ。
「S式でCを書くCiSEスレ」とかにすれば関数型ファンがすぐ集まるよ

94 名前: mailto:sage [2010/08/17(火) 11:20:40 ]
適当なテンプレがあるなら、自分がスレ立てるけど

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



96 名前:デフォルトの名無しさん [2010/08/17(火) 13:01:41 ]
>>95
言語機能で提供すべきことと
言語自身を使って作るものの
単純明快な判断基準がウケたのがC
新基準を開拓に行くと出かけて帰りが遅いのがC++

97 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 13:16:18 ]
lambdaが言語に組み込まれて良かったわ
ずっとboost.lambda使えっていわれたらどうしようかと思った

98 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 13:25:20 ]
>>92
そのための
#line

99 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 14:44:32 ]
>>95
lispの便利さを知ってしまうと他を使いたくなくなる
(コマンドラインgcc からVisualStudioに移ったぐらいの便利さがある)
しかし他から「成果はCかC++で納めてくれ」と言われることは多いらしく
cise とかthinlispとかこの手の試みがいろいろされてきたようだ


100 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 15:35:02 ]
まあC++も最初はCのトランスレータだったし



101 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 15:50:02 ]
lispそんなにいいとも思わんしいらんわ

102 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 18:11:44 ]
誰かboostの構文生成するようなdefine-stm を作って公開しないか


103 名前:デフォルトの名無しさん [2010/08/26(木) 16:40:58 ]
質問です。
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 + " ";//"\n";

これを実行するとすべてが1行にコマンドプロンプトに表示されます。
これをCSVファイルの並びと同じように行ごとに表示させたいですが
どうしたらよいでしょうか?良い解決策がありましたらお願いします。
<例>
a,e,d
q,d,r
r,u,t
これを実行すると
a e d q d r r u tのようになります。
これを
a e d
q d r
r u t
のようにしたいです。

104 名前:デフォルトの名無しさん mailto:sage [2010/08/26(木) 17:31:03 ]
csvLineに1行ずついれてるなら
for( 〜 ) {

105 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/08/30(月) 14:05:26 ]
>>106
Boostの埒外なので勝手にどうぞ。

108 名前:デフォルトの名無しさん [2010/08/30(月) 14:09:41 ]
tsvってなに?

109 名前:デフォルトの名無しさん mailto:sage [2010/08/30(月) 14:21:29 ]
>>108
TabSeparatedValueフォーマットの略。

110 名前:デフォルトの名無しさん [2010/08/30(月) 14:34:04 ]
106に書き込んだものです。C++で質問したいと思います。
申し訳ありませんでした。



111 名前:デフォルトの名無しさん [2010/08/30(月) 15:03:41 ]
>>108
トンクス、tab区切りなのか・・・。

112 名前:デフォルトの名無しさん mailto:sage [2010/09/01(水) 12:12:26 ]
Boost.Polygonきたー

113 名前:デフォルトの名無しさん mailto:sage [2010/09/01(水) 16:41:37 ]
Boost.Polygonって何に使うのか全然わからね。

114 名前:デフォルトの名無しさん mailto:sage [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まで全て取り出すにはどうしたらいいですか?
実際はもっと複雑なフォーマットなので正規表現でなんとかしたいです。

115 名前:デフォルトの名無しさん mailto:sage [2010/09/03(金) 23:00:26 ]
((\d+)(?:,|))*
ただのカンマ区切りならboost::tokenizerじゃだめなの?

116 名前:デフォルトの名無しさん mailto:sage [2010/09/04(土) 20:16:45 ]
1.44ってVC10とかのmove semanticsに対応してる?

117 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 10:13:54 ]
CSVはきっちりやるなら一文字ずつチェックしていくしかないだろ。
ダブルクォートの処理とかマジめんどい

118 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 23:34:29 ]
Boost.Polygon早速仕事で使ってみてる。
なかなかいい感じ。

でもまだ機能が少ないな。
他の表現法からの取り込み対応も必要だ。

119 名前:デフォルトの名無しさん [2010/09/07(火) 14:20:33 ]
多角形の頂点管理でもしてくれるライブラリかい?

120 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 14:44:58 ]
>>119
点とか矩形みたいな基本図形もある



121 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 14:55:09 ]
3次元のポリゴン・メッシュを管理してくれるのなら使い道もあるのだが。

122 名前:デフォルトの名無しさん mailto:sage [2010/09/09(木) 22:50:01 ]
boost.interprocessってメモリアライメントを考慮してくれるんだろうか?
例えば、Win上で64bitアプリとWOW64で動いてる32bitアプリ間で
相互通信する場合はやっぱboost.mpiじゃないと駄目?

123 名前:デフォルトの名無しさん mailto:sage [2010/09/12(日) 19:09:03 ]
>>114>>117
そこはほら、Boost.Spiritで


124 名前:デフォルトの名無しさん mailto:sage [2010/09/12(日) 22:15:08 ]
>>123
いまいち使い方わかってないんだが、ググってみたらCSVのパースも
シンプルな式になるもんだな・・・
面白そうだから今度やってみよう。
教えてくれてトン。

125 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 14:59:21 ]
foo-baa.cpp
ってファイル名使いたい
でもboostではfoo_baa.cpp
なんだよね
FreeBSDのxtermだと _ 消えて見えないから見にくい

126 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 21:55:24 ]
>>91
boostpro からも1.44のインストーラが出てますね。

www.boostpro.com/download/

127 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:37:09 ]
Boost.Logって1.45から?
つうかreview scheduleにLoggingもあるんだけど
やつ間接的にLogに殺されたということなのか

Loggingは犠牲になったのか…

128 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:01:06 ]
property_treeのini_parserってメモリ上の文字列に対して使える?

129 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 18:06:31 ]
stream に対してなら使える。

130 名前:デフォルトの名無しさん mailto:sage [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 );

これはエラーが出る。何か間違ってるかな



131 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 01:36:25 ]
stringstreamのヘッダがインクルードされていないとかってオチ
…はないかw

132 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 04:18:26 ]
>>130
試してみたけど、PHOENIX_LIMIT のコンパイルエラー以外は普通に通ったぞ(Boost 1.44 + VC9)
とりあえずエラーの内容と環境貼れよ。

133 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 21:19:18 ]
>>132
すまん、勘違いしていたようだorz
しょーもないミスをしていた。自己解決したんでスルーしてください

134 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 03:47:30 BE:2161145298-2BP(0)]
boost::polygonってlong long使えないのか。
std::abs(long long)が無いってエラーになる。

135 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 03:51:58 ]
int64_t

136 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 04:56:31 BE:1050557257-2BP(0)]
そっちでも同じっぽい。
std::abs(int64_t)もstd::abs(__int64)も無い。

137 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 12:29:35 ]
long longが規格に入るのはC99/C++0xからだからしょうがない

138 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 15:34:54 ]
テンプレートで実装してなかったのは何か理由があるのか?

139 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 13:50:31 ]
boostといったいなんの関係があるんだ



141 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 14:07:47 ]
マルチーズ

142 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 15:35:38 ]
>>140
そこに気付くとは・・・やはり天才・・・

143 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 18:05:29 ]
VC++10において、BOOST_TYPEOF(hoge)とdecltype(hoge)は等価になると思っていいんでしょうか?

144 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 19:49:20 ]
VC10のdecltypeは、コンパイラがクラッシュする致命的なバグがあるとか。

145 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 20:04:26 ]
大丈夫だ、問題ない

146 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 21:01:53 ]
>>144
コンパイラがクラッシュするって本格的だな。
でも実行時にクラッシュするよりはマシだと思うけど。


147 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:02:26 ]
>>144
クラッシュしないように使えば問題ない

148 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:21:10 ]
>>147
なぜMatz

149 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 00:01:53 ]
なんでかしらんがdecltypeって文字の並びに一瞬もよおした・・
本能が何かを感じたようだ

150 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 01:11:10 ]
Microsoft製品はSP1が出てから乗り換えるのが基本
本体の安定性もだが、OSだとサードのソフトが、VSだとプラグインやSDK類の対応がすぐには為されないからな



151 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 21:40:06 ]
VC9で1_44 pythonの埋め込みを試しているのですが
メモリリークが発生してしまいます
↓のようなコードなのですがどこがおかしいんでしょう?

class Hoge {};

namespace bpy = boot::python;
BOOST_PYTHON_MODULE(Hoge){
bpy::class_<Hoge>("Hoge");
}

int main( int, char **)
{
PyImport_AppendInittab("Hoge", initHoge);
Py_Initialize();

bpy::object global_ns = bpy::import("__main__").attr("__dict__");
bpy::exec(
"from Hoge import *\n"
"h=Hoge()\n"
, global_ns , global_ns
);
Py_Finalize();

return 0;
}

同等のことをクラス(Hoge)ではなく、関数で行うとメモリリークは起きません

152 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 16:17:32 ]
Macのgccっていろいろ変らしいのだけど
boostはちゃんと動くの?

153 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 16:30:03 ]
Boost側が頑張ってるから大丈夫

154 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:14:50 ]
variantってwitch()で型を判断するのダサくないですか?
なんかいい方法無いでしょうか

155 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:19:55 ]
Visitor使え。

156 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:26:10 ]
>>155
visitorとは何でしょうか?

157 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:32:21 ]
ググレカス
www.kmonos.net/alang/boost/classes/variant.html
ここ見てもわからなかったら氏ね。

158 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:37:35 ]
       ∧∧
       /⌒ヽ)  もはようちゃん
      i三 U   
     〜三 |
      (/~∪
    三三
  三三
三三

159 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:56:27 ]
ファンクションオブジェクトを型ごとにつくればいいのか。。。

160 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:18:45 ]
>>159
オブジェクトはひとつでいい。すべての型に対応するオーバーロードがあれば。

>>154
if (T* p = boost::get<T>(&v)) ... おすすめ。



161 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:18:36 ]
autoでどうにかならないの?

162 名前:デフォルトの名無しさん mailto:sage [2010/10/15(金) 01:18:06 ]
>>161 何が?

163 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 17:09:18 ]
spirit::classicのコードをメンテというか改造使用と思ってるんだけどこれを期にspirit v2に移るべきでしょうか?
機能追加するので全面書き直しOKという前提で。


164 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 17:33:40 ]
V2ならパース結果をコンテナやタプルに格納する処理を超簡単に書ける。
Boost.Fusionとの連携もすごい。Boost.Qi も出始めと比べて安定して枯れてきてる。
Classic のコードを保守しなくていいなら乗り換えない理由はないと思う。

165 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 18:28:44 ]
コンパイラの負担が阿呆ほど増えるけどな

166 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 18:32:06 ]
Spirit 使ってる時点で既にコンパイル時間はboostしてるだろ。

167 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 18:37:36 ]
>>164-165
わかった。乗り換えてみるよ。


168 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 15:41:30 ]
sourceforgeのファイル一覧がひどいことになってるな
何のベンチマークだよこれ

169 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:12:33 ]
boostを使用してだいぶ開発が進んだ頃に以下のエラーが出るようになりました

1>d:\sdk\boost_1_44_0\boost\type_traits\detail\is_mem_fun_pointer_tester.hpp(1526): error C2061: 構文エラー : 識別子 'clasw'
1>d:\sdk\boost_1_44_0\boost\type_traits\detail\is_mem_fun_pointer_tester.hpp(1527): error C2365: 'boost::type_traits::is_mem_fun_pointer_tester' : 再定義; 以前の定義は '関数' でした。
1>d:\sdk\boost_1_44_0\boost\type_traits\detail\is_mem_fun_pointer_tester.hpp(1527): error C2998: 'boost::type_traits::yes_type boost::type_traits::is_mem_fun_pointer_tester' : テンプレート定義にはなれません。

リビルドしてもこのエラーが出ることもあるしでないこともあるし、出現位置もバラバラで全く原因がわかりません
上記ファイルを使用する機能や上記エラー内容が分かれば教えてください

170 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:31:52 ]
claswこれなんだ



171 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:33:44 ]
わからないです。そんなもの見つからないし、そんなコードがあったら毎回エラーになるはずですよね・・・

172 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:34:51 ]
とりあえず boost/function.hpp 使ってるところをすべてコメントアウトしたら出なくなったかも

173 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:37:17 ]
と思ったら21回目のリビルドででました・・・

174 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:39:43 ]
ちなみにIDEはVisualStudio2010Express
x86ターゲット、デバッグビルド
CPUはCore2Duoです

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

コンパイラのバグかな?

176 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:55:44 ]
ディスクが壊れてるんじゃね?

177 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 17:10:56 ]
>>174
VC10なら使える人が多いんだから、エラーの出るソース晒してみそ

ビルドのやり直しで通るなら、簡易ビルドをOFFにしてみるてがある。

178 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 20:35:59 ]
念のためだけど、Debug フォルダ全消しはしてみたよね?

179 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 22:18:47 ]
>>176-178

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

boostのディレクトリを丸々コピー→古いのを削除→新しいのをリネームしたら出なくなったっぽいです。
ディスク障害だったのかな・・・しばらく様子を見てみます

180 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:21:45 ]
昔はc++を喜んで使ってたが
lisp使うようになってからは
lispでデバックしてc++は自動生成するだけだわ
それにしてもc++の案件多いなあ



181 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:25:02 ]
>>180
最近のlispはC++にコンバートできるんだ?
Cへのコンバートなら良く見かけるんだけど・・・。

あとSchemeで実用レベルのCorC++コンバーターとかあります?

182 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:30:32 ]
>>180
Lispのどこらへんが魅力ですか? いや、マジに質問で。そっちのが効率いいなら
そっちに乗り換えるのもありかなと。

183 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 16:38:02 ]
>>182Lisp族の魅力はググればいろいろ読めるよ。

184 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 17:46:13 ]
切ったりくっ付けたりかね

185 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 21:37:58 ]
lispは合理的ではあるけど、アプリのすべての部分をlispで書くのは無茶じゃないか?


186 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 21:58:24 ]
サポートされるライブラリしだいだとおもうけどね。

187 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 22:55:59 ]
関数単位はCで書いてフレームにLispとかが良いのかね

188 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 11:08:28 ]
それもありだね。

189 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 12:49:37 ]
あなたにVacuum!〜ちょいやわらかめ〜

190 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 20:02:11 ]
Boost ってweb frameworkないの?



191 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 22:06:40 ]
馬鹿は死んだほうがいいね。

192 名前:デフォルトの名無しさん mailto:sage [2010/11/04(木) 08:26:01 ]
javaをc++の方言としてコンパイルする方法あるみたいだから
tomcatあたりをc++としてコンパイルしたらいいんでないの?

193 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 00:45:01 ]
メモリーが無限にあればGCなんていらなくなるな。

194 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 15:28:14 ]
boostのmulti_arrayってコピーすると
ポインタで共有するんじゃなくて内容丸ごとコピーするのね
普通の配列みたいに共有して、不要になったら解放ってできないかな
shared_ptr<multi_array<T,int>>にするしかない?

195 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 15:31:04 ]
>>194
「普通の配列」が何を指してるのか知らないけど、言語組み込みの配列も std::vector も
boost::array も共有なんて動作はしません。

で、共有したいという目的に対して shared_ptr では何か不満なの?

196 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 15:31:39 ]
flyweightはダメか?

197 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 15:37:23 ]
>>194
www.boost.org/doc/libs/1_44_0/libs/multi_array/doc/reference.html

multi_array_ref やら view generator やらあるらしいぞ。

198 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 15:37:30 ]
194の配列とポインタの理解度に不安がよぎるな

199 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 15:47:22 ]
どうせJavaから来たニワカだろ。

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

目的にはshared_ptr<multi_array<T,int>>が一番合致するんですが、
そうすると結構ソースコードを書き換える必要があるので



201 名前:デフォルトの名無しさん mailto:sage [2010/11/05(金) 16:17:11 ]
shared_ptrだと不味いけどmult_arrayがまるごとコピーじゃなかったら問題なかったってことは
*とか->の話なのか?

202 名前:デフォルトの名無しさん mailto:sage [2010/11/06(土) 01:48:28 ]
>>200
そんなに書き換えがいやなら、元の名前で multi_array<T,int>& とか multi_array_ref とかを
別で置いたらいいんじゃね?

203 名前:デフォルトの名無しさん mailto:sage [2010/11/06(土) 07:41:40 ]
>>200
参照渡しで渡せばよくないか?

204 名前:デフォルトの名無しさん [2010/11/20(土) 09:47:50 ]
1.45
Boost C++ Libraries
www.boost.org/


205 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 12:08:55 ]
あれ・・・bjamでビルド失敗するんだがなんだこれ
1.44以前や最新のリポジトリだと問題ないんだが


206 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 16:58:02 ]
1.45 VC10でビルドできたよ。
bjamがアンチウイルスに引っかかることは昔あったな。


207 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 17:07:41 ]
1.45ビルドできたと思ってたら、アプリのビルドで未定義外部シンボルが出てきた。

208 名前:205 mailto:sage [2010/11/20(土) 19:08:36 ]
zipや7zで圧縮されてるソースだと駄目だったけどbz2のはビルド出来た
解凍か何かでしくじってたんではないかと思う

209 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 19:58:30 ]
あー、解凍云々じゃなくて、ICU入れて--installオプションでビルドしようとするとしくじるみたい
MPICHも絡んでるかもしれん
bjamはフル機能でビルドしようとすると途端に動作がおかしくなるんだよな・・・


210 名前:デフォルトの名無しさん mailto:sage [2010/11/20(土) 23:59:36 ]
駄目だ、Regexビルドしようとするとエラー吐く
わけわからんちん



211 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 00:41:53 ]
今落としてやってみたが普通にビルドできたぞ

212 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 00:56:26 ]
win vc9環境. 公式から落としてきた bjam.exe だとエラーで、
bootstrap.bat で生成したbjam.exeだとコンパイルできた…
そういうものなの?

213 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 00:58:17 ]
せっかく入ってるんだからそっちつかえってことじゃね

214 名前:210 mailto:sage [2010/11/21(日) 02:54:08 ]
今までは最新のリポジトリからビルドしたbjam.exeを常に使ってたんだけど、
>>212のレスを見て1.45リリース版のソースからビルドしたbjam.exeを使ったらビルド出来た
今回のリリースはちょっと癖があるな

215 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 10:39:02 ]
一番でかい更新はbjamってことか

216 名前:207 mailto:sage [2010/11/21(日) 13:36:23 ]
>>207のリンクエラーは俺のミスでした。
間違えてx86でライブラリビルドしてx64のアプリをビルドしてました。
x64でboostのビルドやり直したら直った。


217 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 13:43:43 ]
x64とx86ってライブラリ名同じなんだけどそういうものなの?


218 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 16:34:15 ]
むしろ別なのを見たことがない

219 名前:デフォルトの名無しさん mailto:sage [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' ゙'':::::::::::::::::::::::}



220 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 20:05:13 ]
CUDAのDLLは32bitと64bitで名前が違うな



221 名前:デフォルトの名無しさん mailto:sage [2010/11/21(日) 21:04:11 ]
>>219
どうやってきりかえるん?

222 名前:デフォルトの名無しさん mailto:sage [2010/11/22(月) 06:55:09 ]
Intelのライブラリも名前違ってたな。

223 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 12:58:51 ]
Boost インスコ・コンパイルしてみた
容量でか杉わろす

224 名前:デフォルトの名無しさん mailto:sage [2010/11/23(火) 19:41:47 ]
32ビットと64ビットのライブラリでファイル名一緒だから、出力ディレクトリを変えている
自分はstage派だから--stagedir=stage32とstage64

225 名前:デフォルトの名無しさん mailto:sage [2010/11/24(水) 23:04:47 ]
(´;ω;)自前 gcc-4.6.0(win) で signals だけが build を失敗する・・・orz
自前 gcc-4.5.1,4.5.2(win) では、build に成功するのにヽ(`Д´)ノウワァァァン

226 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 01:37:45 ]
msmを試してみてるんだけど
コンパイルに時間かかるね

227 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 01:47:27 ]
gccはバージョンによってエラー吐いたり吐かなかったりで始末に負えん

228 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 02:07:17 ]
gcc に限ったことじゃないだろう。

229 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 02:25:05 ]
Boostはとくにひどいね

230 名前:デフォルトの名無しさん mailto:sage [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, ・・・ < 略 >



231 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 09:26:14 ]
こんなガラパゴスで愚痴ってたって解決せんぞ
さっさとBoostコミュに報告しろ


232 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 12:57:09 ]
「自前」なので放置、ってことは gcc の中身をいじってるんじゃないか?

相談したいならエラーメッセージを省略とか、わけわからんことするな。

233 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 16:06:27 ]
>>225
またおまえか。

234 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 16:10:26 ]
>>231-232
CYGWIN+MinGW+GCCスレでもずっとこの調子で長期にわたって
住民を困らせてるやつだから相手にしないほうがいいぞ。

235 名前:デフォルトの名無しさん mailto:sage [2010/11/25(木) 18:23:07 ]
あら、そんな奴だったのか
ならば死ぬがよい

236 名前:うp [2010/11/28(日) 23:31:48 ]
uproda.2ch-library.com/lib318675.h.shtml
DLキー:1

237 名前:うp mailto:sage [2010/11/29(月) 05:34:15 ]
uproda.2ch-library.com/3187145H1/lib318714.zip
DLキー:1

238 名前:デフォルトの名無しさん mailto:sage [2010/12/09(木) 08:16:18 ]
SpritiとかQiとかYacc使えばいいのに

239 名前:デフォルトの名無しさん mailto:sage [2010/12/09(木) 08:20:50 ]
boost.FC++
は何故採択されなかったのか


240 名前:デフォルトの名無しさん mailto:sage [2010/12/09(木) 08:44:11 ]
Boost.Coroutine
がレビュースケジュールに入ってない
結局入るの?



241 名前:デフォルトの名無しさん mailto:sage [2010/12/09(木) 20:24:21 ]
BOOST_SCOPE_EXITでメンバ関数を呼びたいときって

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

こうしないと駄目?

242 名前:デフォルトの名無しさん mailto:sage [2010/12/13(月) 12:26:33 ]
gccでC++0xオプションつけても動きますか?


243 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 01:55:11 ]
static boost::array<int, 5> Array;
のようにboost_arrayにstaticを付けるとvc2005ではデバッグ時にシンボルとして扱ってくれずに
ブレークポイントもウォッチも出来なくなりました。
これはboost::arrayをstaticにしてはだめということでしょうか?
それともvc2005が対応してないだけなのでしょうか?

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

array<int, 3> a = {1,2,3};の要素数は推測して欲しいです。

245 名前:デフォルトの名無しさん mailto:sage [2010/12/21(火) 12:07:20 ]
int a[] = { 1, 2, 3};

246 名前:デフォルトの名無しさん mailto:sage [2010/12/21(火) 12:27:22 ]
>>245
その場合begin()やend()が提供されません

247 名前:デフォルトの名無しさん mailto:sage [2010/12/21(火) 13:00:03 ]
boost::rangeのbegin()とend()を使えばいいのでは?

248 名前:デフォルトの名無しさん mailto:sage [2010/12/21(火) 14:57:50 ]
>>247
あり^^

249 名前:デフォルトの名無しさん mailto:sage [2010/12/24(金) 08:56:10 ]
なぜYes No判定関数は必ず
is_foo
なんだろう

250 名前:デフォルトの名無しさん mailto:sage [2010/12/24(金) 09:03:35 ]
Is 〜はyesかnoしか返さないからだろ



251 名前:デフォルトの名無しさん mailto:sage [2010/12/24(金) 13:22:56 ]
>>249 if (x.is_foo()) ... が英語の自然な文として読めるからだろ

252 名前:デフォルトの名無しさん mailto:sage [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' に変換できません

どう書いたら通るんでしょうか。よろしくお願いします

253 名前:デフォルトの名無しさん mailto:sage [2010/12/24(金) 23:10:30 ]
無理に決まってんだろ
静的なメンバ作ってそこから呼ぶしかない

254 名前:デフォルトの名無しさん mailto:sage [2010/12/24(金) 23:22:33 ]
インスタンスがあるならそれ使って呼ばせられなかったっけ

255 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 00:12:42 ]
呼び出し規約と引数をHOOKPROCに合わせたトランポリン関数を
動的に生成して…とか考え始めて無駄な時間を過ごすのが俺は好き。

256 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 00:53:02 ]
>>252
std::functionを使えばいい。
std::functionのオブジェクトのポインターをLPARAMとかを経由して渡す
コールバック関数は、ポインター経由でfunctionを使う。

257 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 09:05:05 ]
LPARAMはそういう用途じゃないから渡せなくないか?

258 名前:デフォルトの名無しさん mailto:sage [2010/12/25(土) 09:40:30 ]
や、気のせいだった

259 名前:デフォルトの名無しさん mailto:sage [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基準満たしてなくてもいいです

260 名前:デフォルトの名無しさん mailto:sage [2010/12/26(日) 15:13:02 ]
あ、間違えた

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



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



261 名前:デフォルトの名無しさん mailto:sage [2010/12/26(日) 15:15:32 ]
>>259
本当にほしいなら ptr_vector をラップすりゃいいんだろうけど、
あんまり意味があるとは思わんな。

262 名前:デフォルトの名無しさん mailto:sage [2010/12/28(火) 00:43:51 ]


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

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

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

●2ちゃんねる ニュースサイト(RSS生成不可)
2ちゃんねる BBY(各ニュース板における前日までの新着スレッドが一望出来る)headline.2ch.net/bbynews/
2ちゃんねる 全板縦断 勢いランキング2ch-ranking.net/index.html?board=zenban
?page=click_linklog_view.daily_ranking&

264 名前:デフォルトの名無しさん mailto:sage [2011/01/02(日) 15:17:28 ]
Windows 7 64bit Visual Studio 2010 に32ビット、64ビット環境を作りたくて
boost1.45 をこのようにインストールしたんだが大丈夫?


265 名前:デフォルトの名無しさん mailto:sage [2011/01/02(日) 15:18:16 ]
↑の続きです
bootstrap.bat

bjam --toolset=msvc address-model=64 --stagedir=./stage/x64 link=static,shared release debug stage

bjam --toolset=msvc address-model=32 --stagedir=./stage/x86 link=static,shared release debug stage

266 名前:デフォルトの名無しさん mailto:sage [2011/01/05(水) 18:01:17 ]
boost.fusionにlambdaの配列入れたいけど無理っぽい

267 名前:デフォルトの名無しさん mailto:sage [2011/01/08(土) 16:57:40 ]
Boost.Chronoがtrunkにきたな

・・・ところでBoost.Chronoってナニ?

268 名前:デフォルトの名無しさん mailto:sage [2011/01/08(土) 21:44:44 ]
C++0x の <chrono> の Boost 実装版。

269 名前:デフォルトの名無しさん mailto:sage [2011/01/10(月) 16:48:23 ]
時計?

270 名前:デフォルトの名無しさん mailto:sage [2011/01/10(月) 16:54:51 ]
検索してまで知りたくないなら、それまでのこと



271 名前:デフォルトの名無しさん mailto:sage [2011/01/14(金) 13:16:14 ]
質問があります。

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

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

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

<doxygen:param>VAR=VAL

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


質問をまとめると、

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

ご存じの方、教えていただけないでしょうか?


272 名前:デフォルトの名無しさん mailto:sage [2011/01/14(金) 18:25:03 ]
>>266
dixq.net/forum/viewtopic.php?f=3&t=1965


273 名前:デフォルトの名無しさん mailto:sage [2011/01/15(土) 10:36:39 ]
並行mapないの?

274 名前:xfsd [2011/01/24(月) 22:12:44 ]
boostでベクトル*区間行列の計算のプログラムを作りたいのですが、うまく作れません
。教えてくれませんか

275 名前:デフォルトの名無しさん mailto:sage [2011/01/24(月) 23:21:30 ]
>>274
まずは作ってみたコードと、うまくいかなかかった結果と、期待している結果とがわかるようにするんだ。

276 名前:デフォルトの名無しさん mailto:sage [2011/01/24(月) 23:37:08 ]
STMなんでboostにはいってねーんだよ
いれろよ

おねがいします。

277 名前:xfsd [2011/01/25(火) 23:06:59 ]
#include "stdafx.h"
#include <iostream>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/interval.hpp>
#include <boost/numeric/interval/io.hpp>
namespace ub = boost::numeric::ublas;
namespace bn = boost::numeric;using namespace std;

int main()
{
typedef bn::interval<double> xinterval;
typedef ub::vector<double> xvector;
typedef ub::matrix<double> xmatrix;
xinterval a(1,2),b(1,3);
xmatrix c(2,2);
c(0,0) = 1.; c(0,1) = 0.;
c(1,0) = 0.; c(1,1) = 1.;

xvector vec(2);
vec(0) = 2.0;
vec(1) = 0;

std::cout << "行列 * ベクトル = " << prod(c , vec) << std::endl;

system("PAUSE");

return 0;
}
行列*ベクトルはできたのですが、区間行列*ベクトルができません。誰か教えてくれませんか?

278 名前:デフォルトの名無しさん mailto:sage [2011/01/26(水) 14:44:54 ]
関係ないけどublasってopenCVみたいに初期化できないの?
Mat M = (Mat_<double>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1);

279 名前:デフォルトの名無しさん mailto:sage [2011/01/27(木) 07:14:46 ]
>>278
最近のアップデートで初期化メソッドが追加になったはず

280 名前:デフォルトの名無しさん [2011/01/30(日) 20:49:03 ]
そうなのか



281 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 21:04:05 ]
あしたはみそか

282 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 21:12:54 ]
明日は晦日、今日は三十日。どちらも読みはみそか。

283 名前:デフォルトの名無しさん mailto:sage [2011/01/30(日) 21:15:50 ]
さむい
ねむい

284 名前:デフォルトの名無しさん mailto:sage [2011/01/31(月) 08:38:03 ]
明日は朔日

285 名前:デフォルトの名無しさん mailto:sage [2011/02/04(金) 18:19:57 ]
>>278
1_44で追加
https://svn.boost.org/trac/boost/ticket/4034

286 名前:デフォルトの名無しさん mailto:sage [2011/02/04(金) 23:15:44 ]
boostに日本人提案のものあるの?

287 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 03:40:46 ]
サッカーはナガトモが世界のリーグ行ったのに
コンピューターサイエンスは世界のライブラリに名を連ねる事ができないのか

288 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 03:42:48 ]
progessが採用されるんだから誰でもOKな筈だ

289 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 03:48:10 ]
>>286 パッチやバグ報告ならいくつかあるみたいだね。

290 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 17:47:23 ]
>>287
日本って,他の奴の成果をtake,take,and takeで自分の成果は情け無い程度giveするが国技
だからコンピューターサイエンス(IT)でも他の奴の成果をtake,take,and takeし
自分の成果は情け無い程度にgive。



291 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 18:33:29 ]
boost::any向け総称関数をMLに投げてみたことあるけど、誰も興味無さそうだったので放置してる。
giveした所で誰も反応してくれないからなあ。


292 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 19:23:39 ]
最低限、反応されるまで声上げ続ける位のガッツがなきゃどうにもならんだろ
キンタマ付いてんのかお前

293 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 19:25:13 ]
ついてなかったらどうするんだよ
責任取れるのかお前

294 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 19:32:01 ]
責任とってもいいの?

295 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 19:32:15 ]
///

296 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 19:38:33 ]
ここまでテンプレ

297 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 19:45:59 ]
>>291
あまりにも情け無いgiveでゴミ扱いなんだろ
本人が凄いgiveと思っているだけじゃね

298 名前:デフォルトの名無しさん [2011/02/05(土) 19:55:10 ]
アイディアってのは思いついてから使い道が見つかるまで何年かかるかわかんねえ
思いついた奴が生きているうちかどうかもわかんねえ

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

俺に言わせれば思いつくこと自体に満足できない奴は俗物だ

299 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 21:39:49 ]
何を思いついたんだ?

300 名前:デフォルトの名無しさん [2011/02/05(土) 22:13:47 ]
色々だよ
例えば周波数帯の合わない検波器の使い方とか
「ある処理」を非再帰で片付ける方法とか



301 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 22:21:40 ]
その思いつきどうboostと関連あるんの?

302 名前:デフォルトの名無しさん [2011/02/05(土) 22:56:49 ]
逆に boost と関係ないものって何だ?

303 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 15:51:56 ]
boostを使わないプログラム

304 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 15:53:39 ]
まさか、boostを使わないプログラムに、ここはboostで出来るから変えろ!
とかわ言わないよな?

305 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 16:30:30 ]
そんなのRubyのひとだけだよ


306 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 17:04:52 ]
> boost と関係ないもの

boost のライセンスと相容れないものは
とりあえず boost と無関係

307 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 06:24:52 ]
>>298
Haskellのライブラリなんか殆どが何に使えるのかわからん

308 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 07:00:45 ]
spiritの機能を動的に使う方法ないですか?
組み込み言語のほうで構文決めたいんですが。

309 名前:コピペのレビューお願いします mailto:sage [2011/02/07(月) 14:08:05 ]
5年前の長友は怪我で試合出場どころか
観客席で応援として太鼓を叩くだけだった体たらく

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


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

早く世界のインテルに移籍して
愚痴だけじゃなく世界一のSEを目指せ!Σd(`・ω・´)

310 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 14:52:26 ]
BoostやるよりPythonやっといたほうがいいよ



311 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 15:05:00 ]
BoostとPythonを並べる理由がわからない…

もしかしてBoostのこともPythonのことも一切分かってない馬鹿なら
並べて云々できるってことなのか…

312 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 15:14:29 ]
Boostと並べたいならDだろ

313 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 15:15:04 ]
馬鹿なんだろう
ほっとこうぜ

314 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 16:58:33 ]
>>309
うまくないし何か痛いわ

315 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 18:18:00 ]
Eclipse CDTでboostのバージョンが上がる度にフォルダ名を変えるのが
面倒臭いので、"Boost"という単純な名前にしてしまった

これだとパッと見バージョンを間違える事があるけどいちいちプロジェクトを
書き換えなくていい

316 名前:デフォルトの名無しさん mailto:sage [2011/02/07(月) 18:46:52 ]
チラ裏

317 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 02:01:41 ]
>>314
あり^^

318 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 09:15:58 ]
>>312
D はもう終わってる
Boost はまだ始まっていない

319 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 19:29:01 ]
Boostは始まってるだろ

320 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 19:38:46 ]
ちゅうか、Dと比べたら、Boostは既に市場に行き渡ってると言っていい状況だよな。



321 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 20:03:27 ]
全然始まってるじゃんよ。

322 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 21:05:15 ]
BoostとDを並べる理由がわからない…

もしかしてBoostのこともPythonのことも一切分かってない馬鹿なら
並べて云々できるってことなのか…

323 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 21:09:25 ]
やる氣のないレス改変だなあ

324 名前:デフォルトの名無しさん mailto:sage [2011/02/09(水) 21:33:30 ]
気持ち悪い

325 名前:デフォルトの名無しさん mailto:sage [2011/02/10(木) 19:42:54 ]
ンギモッヂイイッ!!!ハッハッハッ……

326 名前:デフォルトの名無しさん mailto:sage [2011/02/11(金) 14:50:49 ]
Polygonの活用方法がいまいちよく分からないんだけど
使ってる人がいればどんなふうに使ってるのか教えてくれ

327 名前:デフォルトの名無しさん mailto:sage [2011/02/17(木) 13:42:37 ]
なんでPythonのライブラリがあるの?
Pythonはそんなに優遇されてるの?

328 名前:デフォルトの名無しさん mailto:sage [2011/02/17(木) 14:28:43 ]
ruby厨乙

329 名前:デフォルトの名無しさん mailto:sage [2011/02/17(木) 16:11:31 ]
何でって、書いてくれる人がいるからあるんだろ。

330 名前:デフォルトの名無しさん mailto:sage [2011/02/19(土) 21:23:39.09 ]
>>328
誰と闘ってるんだ



331 名前:デフォルトの名無しさん mailto:sage [2011/02/20(日) 16:43:59.53 ]
こちらboostン宇宙基地

332 名前:デフォルトの名無しさん mailto:sage [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>()以外にそういった用途の物がありそうなのですが、
見つけられなかった・・。


333 名前:デフォルトの名無しさん mailto:sage [2011/02/20(日) 19:13:14.44 ]
Boost.MultiIndex の実装は、std::set に近いと考えればいい。
自由に要素を書き換えられたら要素のソート状態が崩れるだろ。

334 名前:デフォルトの名無しさん mailto:sage [2011/02/20(日) 19:15:48.26 ]
やはりそうですか、
すっきりしました、ありがとうございます。


335 名前:デフォルトの名無しさん [2011/02/21(月) 21:01:12.20 ]
regexの一文字マッチのドットを
日本語の一文字に対応させることってできます?

336 名前:デフォルトの名無しさん mailto:sage [2011/02/21(月) 21:10:57.75 ]
wregex使えばいいよ

337 名前:デフォルトの名無しさん mailto:sage [2011/02/21(月) 21:23:14.07 ]
c++の列挙体をboost.python使ってpythonから扱いたいんだがどうすればいいんだ?

338 名前:337 mailto:sage [2011/02/21(月) 21:51:13.44 ]
ごめん自決した

339 名前:デフォルトの名無しさん mailto:sage [2011/02/21(月) 21:53:21.41 ]
マジか。漢らしいな

340 名前:デフォルトの名無しさん mailto:sage [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/



341 名前:デフォルトの名無しさん [2011/02/22(火) 15:49:23.13 ]
1.46.0
www.boost.org/

342 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 13:57:57.13 ]
>>336
ttp://www.boost.org/doc/libs/1_46_0/libs/regex/doc/html/index.html
wregexについての記述が見当たらないんですが、
この中にありますか?
なんか探しても見つかりません…


343 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 14:07:55.35 ]
ttp://www.boost.org/doc/libs/1_46_0/libs/regex/doc/html/boost_regex/unicode.html
これだろ

344 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 14:15:50.98 ]
>>342
ttp://www.boost.org/doc/libs/1_46_0/libs/regex/doc/html/boost_regex/ref/basic_regex.html
あるよ

345 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 15:37:32.53 ]
>>343,344
ありがとうございます。


346 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 19:17:49.15 ]
Boost.lclなるものが加わったみたいでなんじゃこりゃと思ったらIclかよ
フォントによっては区別つかねーよ

347 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 19:29:12.48 ]
Boost のドキュメントのフォントだとまじで区別つかない。

348 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 19:47:02.23 ]
Iclって何するんだ?
名前からすると間隔つーか値の範囲を持ったオブジェクトあたり?

349 名前:デフォルトの名無しさん mailto:sage [2011/02/23(水) 22:29:37.03 ]
時間間隔をキーにしたコンテナじゃないか?

350 名前:デフォルトの名無しさん mailto:sage [2011/02/24(木) 16:53:06.62 ]
boost.Intervalじゃ[1,3)みたいな一つの開区間しか表せないけど
数直線状の任意の部分を表すには[1,3)と[3,5)と[7,9)みたいに複数の区間がいるから
それを扱うものなんじゃないか?



351 名前:デフォルトの名無しさん mailto:sage [2011/02/24(木) 16:53:49.11 ]
ごめん、×開区間→○区間な

352 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん 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