1read 100read
2011年10月1期プログラムBoost総合スレ part9
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
関数型言語Part5 アセンブラ初心者スレッド 形態素解析と日本語処理 C言が全く分からない俺を神が救ってくれるスレ
Boost総合スレ part9
1 :10/05/28 〜 最終レス :12/01/09 過去スレ Part 8 http://pc12.2ch.net/test/read.cgi/tech/1251446016/ part 7 http://pc12.2ch.net/test/read.cgi/tech/1232367742/ part 6 http://pc11.2ch.net/test/read.cgi/tech/1207749841/ part 5 http://pc11.2ch.net/test/read.cgi/tech/1192662575/ part 4 http://pc11.2ch.net/test/read.cgi/tech/1175663346/ part 3 http://pc11.2ch.net/test/read.cgi/tech/1158991211/ part 2 http://pc8.2ch.net/test/read.cgi/tech/1139313234/ part 1 http://pc8.2ch.net/test/read.cgi/tech/1091198276/ ■関連サイト■ Boost C++ Libraries http://www.boost.org/ Boost 翻訳プロジェクト http://boost.cppll.jp/HEAD/ Let's Boost http://www.kmonos.net/alang/boost/ boost info http://shinh.skr.jp/boost/
2 : ■関連書籍■ Boost C++をチューンアップする最先端ライブラリ http://www.amazon.co.jp/exec/obidos/ASIN/4894714191/ Boost C++ Libraryプログラミング http://www.amazon.co.jp/exec/obidos/ASIN/4798017043/ Beyond The C++ Standard Library http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/ C++ Template Metaprogramming http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/ The Boost Graph Library http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/ ■関連スレ■ C++相談室 part81 http://pc12.2ch.net/test/read.cgi/tech/1273407971/ C++0x 9 http://pc12.2ch.net/test/read.cgi/tech/1269623636/
3 : Boost Sandbox https://svn.boost.org/trac/boost/wiki/BoostSandbox Boost Vault http://www.boostpro.com/vault/ Loki http://sourceforge.net/projects/loki-lib/ JTC1/SC22/WG21 - The C++ Standards Committee http://www.open-std.org/jtc1/sc22/wg21/ POCO, the C++ Portable Components http://www.appinf.com/poco/info/ http://sourceforge.net/projects/poco/ The unofficial BCB Boost patches http://bcbboost.sourceforge.net/
4 : 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 : ublas::vectorには==演算子が定義されていないのでしょうか?
6 : >>4 fiber\build\Jamfile.v2の 14行目の import pyutils ; を消す。 29行目の [ pyutils.linkage ] を "WindowsPE" に変更。 53行目の [ pyutils.architecture ] を "i386" に変更。 (pyutils.py の実行結果を直で書いた・・・) で解決しました。
7 : #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 : いろいろ試してみたところ > io::stream_buffer<io::array_source> sb(io::array_source(buf)); が関数プロトタイプと解釈されている事が原因のようです。 これは言語的に正しい解釈なのでしょうか?
9 : >>8 Yes. Effective STL に載ってる有名な落とし穴。
10 : >>9 io::stream_buffer<io::array_source> sb(io::array_source buf); という風に解釈されるんですね。 遅くなりましたがありがとうございました。
11 : すみません質問です。 VisualStudioの2008と2010が入っている環境でboostをビルドしたところ、msvcのバージョン指定しない場合は「〜vc100〜.lib」等が作成されました VS2010でサンプルアプリケーションを作って実行したところ正常動作を確認したのですが、欲しかったのはVS2008用のため、msvcのバージョンを指定してビルドしたのですが、 「〜vc〜.lib」というファイルが出来あがり、VS2008でサンプルアプリケーションを作って実行したところ「〜vc90〜.lib」が見つからずエラーとなりました 古いバージョンのビルドでバージョン表記を付けてビルドするにはどうすればいいんでしょうか。 参考にしたURLこちらで、バージョン指定のビルド時は「--toolset=msvc-9_0」を指定しました http://www.kmonos.net/alang/boost/build.html
12 : toolset=msvc-9.0
13 : うおおおできたぁあああああああ!!! 有難うございます助かりましたm(_ _)m
14 : 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 : 質問お願いします。 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 : A=[B^t C^t]^t ですね。すみませんでした。
17 : ベクトルA,B,C と行列Xになんの関係もないじゃん。
18 : そうですね。A,B,CとX,Y,Z,Wの間には関係がないです。 B,CをもとにA、Y,Z,WをもとにZをそれぞれ定義したいという感じです。
19 : >>15 ublas使うなら ttp://d.hatena.ne.jp/blono/archive を1から読むといいよ 15が聞きたいことも頻繁にやってる(projectとかsliceとか)
20 : 15です。 そのサイトは非常に参考にさせて貰ってます。 たぶんですけどsliceからのswapでいけるのかなぁ〜と考えてます。 ともかく色々試してみます。質問に答えてくれてありがとう。
21 : ビルドしたライブラリ(.lib)の名前の後ろにつく文字列に、mtとmt-sという 2種類のものがあるのですが、どのような違いがあるのでしょうか? mtというのは、VC++のランタイムライブラリ設定で"マルチスレッド"を 選んだからだと思うのですが、sという文字列の意味がわかりませんでした。 初歩的な質問かもしれないですが、教えてもらえるとうれしいです
22 : static
23 : http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#library-naming
24 : >>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 : weak_ptrってshared_ptrが無効かどうか知る場合に使えばいいですか?
26 : >>25 マルチすんな
27 : 何が悪いんだよ おまえ goto 有害説にしか見えないぜ
28 : >>25 いいえ
29 : >>26 ごめんなさい・・・ スルーされたもんで
30 : >>29 そんな言い訳が通用したらマルチは存在しない。 常識で考えればちゃんと取り下げてから来いよ。
31 : >>25 できるけど、普通shared_ptrはコンストラクタで初期化するのだし そういうコードが必要になるような設計に問題があると思う if (p != NULL) {...} がバグの温床だからやめようというのと同じで if (p.use_count()) {...} ってのも関心しない 検索してもなかなか出てこないのには好ましくないから 人に見せるような綺麗なプログラムにはあまり出てこないという背景がある
32 : p.use_count() はともかく if (shared_ptr<Hoge> p = wp.lock()) { ... } あたりはかなり典型的かつ有用な idiom のような?
33 : ブーリアンコンテキストでチェックするのは普通でしょ そのためにsafe boolが定義されてるんだから use_count()はデバッグやテストのためであって 製品版では使うなとドキュメントに書いてあったはず
34 : へえ
35 : ublasって 純粋なCと速度はあんまり変わりないの? 他のboostもコンパイルに時間かかるだけで実行時間は純粋なCとあまり変わりないの?
36 : 純粋なCってなんだよ この世には不純なCがあるのか?
37 : 全てはアセンブリ言語に変換・・・アセンブルされ、リンクし、バイナリは天に召される。 動けわがプログラムよ!
38 : 天に召されたらうごかないんじゃね
39 : 天はCPUなり
40 : 三途のバスを越え、閻魔CPUの裁きが下るそのとき、 あなたの運命は定まるでしょう。
41 : 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 : エスケープシーケンス std::string::c_str() まずC++の基礎を何とかしてください。
43 : ありがとうございます。一応コンパイル通りました results.str(0).c_str() こんなのがあるなんて全然知りませんでした。
44 : 詰みました boost::regex hosii(" *hoge *\(");←ここで止まります。ハンドルされていない例外ですと boost::match_results<const char*> result; boost::regex_search(data, results,hosii); fputs(results.str(0).c_str(), wfp); 何が間違ってるのでしょうか? エスケープシーケンスが正しくないかもしれませんみたいな警告が出てましたが何か間違ってますか?
45 : \→\\
46 : >>45 ありがとうございました 一見\で\が文字化されそうですね
47 : 簡単さならxpressiveがヘッダファイルだけで済んで手軽 Static版の文法覚えちゃえば処理速度も期待できる ただしコンパイル時間は延びる
48 : ぼくもほめて(´;ω;`)
49 : まだまだ未熟だな。
50 : ublasは中身替えられるから ATLASなどを使えばSIMD対応で速いと聞く ただATLASのコンパイルという壁が・・
51 : regexはユーザーが入力した正規表現をそのまま渡しても平気かな?セキュリティーホールになったりしない?
52 : Xpressive VC2008だと山のように警告が出る
53 : そうか?型の整合性さえ取れれば何も言われないけどな 山のようにって言っても一部の警告がテンプレートの展開で連鎖してるんだろ
54 : Boost.Xpressiveサイコー でも標準入りを果たしたStd.Regexの汎用性には負ける。
55 : RegexってインタプリタパターンとかDSLになるん?
56 : Regexはインタープリタ XpressiveはTMP、インタープリタ、両対応。
57 : >>55 > インタプリタパターン > DSL って何?パターン? よく知らないんだけど、正規表現の業界用語?
58 : >>57 デザインパターン
59 : >>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 : > DSL Domain Specific Language 分野特化言語
61 : >>60 ありがとう。
62 : Interpreter パターンとか Visitor と Composite 組み合わせて ParseContext 作っただけにしか見えないわ
63 : 実装詳細を見てわかった気になるヤツって多いよね
64 : 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 : 誰か>>64 の解決策教えてよ。友達いないんだ。さみしいの。
66 : http://lists.apple.com/archives/carbon-dev/2006/Aug/msg00400.html これか、違うか?
67 : それっす。有り難う。
68 : OSXと関係ないが、VC++は<c**>でincludeしてもstdにならないんだよな確か
69 : >>68 標準関数はstdに入ってるよ 同時にグローバル名前空間にもぶちまかれるが
70 : http://www.atmarkit.co.jp/news/200909/07/lltv02.html boostより抽象度は高そうなんだが
71 : >言語と戯れよう プログラミング自体が目的になってる方は死んで下さい
72 : VC++2010だと、BOOST_SCOPE_EXITとかBOOST_FOREACH使うとクラスビューの 関数解析結果がおかしくなるんだが・・・
73 : >>71 MPLの変な文法おぼえるよりlisp覚えたほうが得 どうせ生成されるCは同じなんだし 多分、動く奴はこれ http://homepage.mac.com/naoki.koguro/prog/dyncomp/index-j.html
74 : どこの馬の骨ともしれぬジャップがでっち上げた俺ライブラリなぞ論外
75 : そういわずに育ててやれよ
76 : これってジェネレーラーはLispでかかれてるんかいな? 落としてみたけどS式書いてあるファイルがみつからんよ??
77 : 本当の本体はGaucheのソースの中らしい
78 : Gaucheのソースを解凍 lib/cgen の下
79 : なるほど、サンキュ!
80 : Gaucheソース ext/uvector のMakefile に使用例
81 : http://alohakun.blog7.fc2.com/blog-entry-586.html lispから読めるCを生成する別な方法
82 : boost-buildと、boost-jamの関係を教えてください。
83 : 恋人
84 : 英語のドキュメント読んでましたが、よく分かりませんでした。 まじめにお願いします。
85 : lover
86 : boostjamはインタプリタ
87 : gauche.cgen.cise のコード読んでるんだが、これあったらboostいらないかもしれない
88 : comp.lang.lispに書いてること信じるなら thinlispの方がgauche.cgen.ciseよりすごいかもしれない makefile *.hまで生成するっぽい
89 : a
90 : >>70 の使い方をまとめた CiSE simple example http://d.hatena.ne.jp/niitsuma/20081113/1281521109
91 : 1.44 Boost C++ Libraries http://www.boost.org/
92 : >>90 これデバッグはしやすい?
93 : >>90 別にスレ建てたほうが注目してもらえるよ。 「S式でCを書くCiSEスレ」とかにすれば関数型ファンがすぐ集まるよ
94 : 適当なテンプレがあるなら、自分がスレ立てるけど
95 : なんでCでこういうのむりやりやろうとするのか疑問だわ。 言語機能に組み込んで新言語つくりゃいいのに。
96 : >>95 言語機能で提供すべきことと 言語自身を使って作るものの 単純明快な判断基準がウケたのがC 新基準を開拓に行くと出かけて帰りが遅いのがC++
97 : lambdaが言語に組み込まれて良かったわ ずっとboost.lambda使えっていわれたらどうしようかと思った
98 : >>92 そのための #line
99 : >>95 lispの便利さを知ってしまうと他を使いたくなくなる (コマンドラインgcc からVisualStudioに移ったぐらいの便利さがある) しかし他から「成果はCかC++で納めてくれ」と言われることは多いらしく cise とかthinlispとかこの手の試みがいろいろされてきたようだ
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
関数型言語Part5 アセンブラ初心者スレッド 形態素解析と日本語処理 C言が全く分からない俺を神が救ってくれるスレ