1 名前:デフォルトの名無しさん [2007/04/04(水) 14:09:06 ] 語って.はぁと part boost::mpl::int_<4> 過去スレ 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 名前:デフォルトの名無しさん [2007/04/04(水) 14:09:31 ] ■関連書籍■ Boost C++ Libraryプログラミング www.amazon.co.jp/exec/obidos/ASIN/4798007862/ 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/ ■関連スレ■ class C++相談室lt;part56gt; pc11.2ch.net/test/read.cgi/tech/1170343752/ 【C++】STL(Standard Template Library)相談室 6 pc11.2ch.net/test/read.cgi/tech/1160821240/
3 名前:デフォルトの名無しさん [2007/04/04(水) 14:09:44 ] 次バージョントップページ(予定) boost-consulting.com/boost/ 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 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 15:25:44 ] >>1 乙
5 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 16:30:34 ] ____ progress_ |← reject| boostの中の人 display ユーザー . ̄.|| ̄ ̄ ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=- || ┏┗ ┗┗ ┏┗ ≡=-  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
6 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 16:33:10 ] >>1 乙!
7 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:25:16 ] >>5 が何度見てもほのぼのする
8 名前:デフォルトの名無しさん [2007/04/06(金) 11:08:07 ] |:〉|:〉 / \ |:〉|:〉 r::ニミ:ヽ /:/ / ハ ヽ「:| ___「:|__ V /:/ :./ : .:./ .:/:. .:./::/ V :.:. :.: ', |:.| `コ::|" r::‐:::ヘ /:./ :./ .:: .:./ .:/:.:. .:/:/ V:.:.:l :.:.: ', ヾ} {_c:人>  ̄ ̄ {./|:. :| :.:._;|_:.:.|:.:.:./|:| " ̄ `ト|、| :.:. |:. :.| 「::.| |:.:.| イ´:| :| ハ:./ || ___ |:| |><|:. :| 「::| |:〉|:〉 「::| |:::| |:.:|:l :| ||_ハ| |:| i rテ=ミV|==⇒|::.:/ 「::|. |:::| r::ニミヽ ヾ> |:::} V|:ハ:|/ri⌒ミ リ {:i::::::::ハ.} :.::.:.:.|:/ \ ヾ> |:::} V くノ r―ト|:|:{.{:i::::::}} {:{::::::rり :.:::: :/ーー<. くノ r::‐:ヘ __ _.>ニ:| ||:.}ヾ辷タ ヾ‐c/ :.:::.:/―‐ ァ 〉 __  ̄ ̄ 「::| `つ:}| V| ||::{xxx. __,.(..・xx:/ :.:/:∧  ̄レ / ノノ `つ:} 「::| |:::|  ̄∧ V :ハ:>r::::::、_____,,. ィ/:./レ ',ー’ーく \  ̄ . ヾ> |:::}ヽヽ/ ∧ V:./V_レつ::::}}::::::::::// \ | ∨ヽ\ \ くノ ./ ///√「 ヽ/{ `Y|=/ _/⌒ ヽ |. |ハ:.:.ヽ.ヽ > / //// / | ∧ \__,人i_/‐‐┐ / }/ |i |:.:.}.ハ. ̄ く__ //:.:/ くr―レヘ..__〉イト 、_ノ ...:.〈 {⌒V./|.:.:| | {:.:.| |i | 〈 | | :.:.:.:.:.| } .ノ |l.:.| |
9 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 06:09:19 ] variantに関して質問。 apply_visitor(Visitor(), v); と書くと、vに入れた型に合った operator()が呼ばれるようですが、 これは実行時型情報を利用しているんでしょうか?
10 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:44:29 ] BOOST_PP で生成された switch case 見て萎えたのは 俺だけではないはずだ
11 名前:デフォルトの名無しさん [2007/04/09(月) 00:15:21 ] anyはRTTIを利用しているがvariantに関しては知らん
12 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 04:35:29 ] なんという閑古鳥・・・ 人がいなさすぎてビクビクしてしまった progress_displayは間違いなくreject / ̄\ | ^o^ | \_/
13 名前:デフォルトの名無しさん [2007/04/10(火) 02:33:19 ] マ. <: : : :! |:.:.:.:.:.:.:.:.:.:.:.:`' 、 .j /: : | ./7 >r_ Z: _L|:.:.:.:.:.:::::::::_;r、_:.:.:\ l/: : : フ / //⊂_ 7'ナ))::::::::::::::{f⌒ヽ!::::.__l': : :ろ/フ l l.:.:.:.: ̄ヽ=':':::::::::::::::::}ゞ___リ::::{(メV-‐'_/ | v⌒ヽ__/\__'‐=_ニ)::::::>=レト、< |}.ハ  ̄' ¬'´ .L_::.|  ̄ , -‐¬;:.| / ̄不_¨'‐┬―- 、, __ `7 /`' 、/.:.:.:.:.:.:/:乃;ィハ//ィチ心-tiヾ.:.l\l__,>,'¬_/ . {.:.:.:.:.:.:|ィ.::::ィ::ハ;::::入L !.'弋_ツ `ヽア牙!/}:\|`ー―ァ _ __ }.:.:.:.:.:.:リ:/V`'‐、L__>、 ゞ''’/イ::人.:.:.:.:.:.:.___> /レ' レ' / ノ.:.:.:.:.:.:.:'.:.:.:.:.:.:.:./⌒ヽ>、>、, ―_´,..、イ\ノ `ー―‐` ./V _ ./7/7 / (.:.:.:.:.:.:.:.:.:.:.::./:/ ,. -‐'´.:.:/へ三≡=ニ不ヽ | .__|:` : : // ):::.:.:.:、.:.:.:.:(ー'´.:.:.:.:.:.:.:.:.:/.:.:.:.:.:./ろ ̄`コ'}`i、,___ ヘ, l: : : : : | |_________ __>、::.:.:.:.`ー个.:.:.:.:.:.:.:.:.:/.:.:.:.:.:./ヱ´ ム-l {r、 __l |ー―.、ミ,、_riニュL| ,、-‐.'ニ';ー‐---―‐.'ニ .:.:.:.:.:.:.:.:\:::::::::::::):::.:.:.:.:./.:.:.:.:.:.:/_Lフ`'‐ァt⊂--'_)'r‐v'ノ r-ニH/⌒'k_/r┐  ̄ ̄ ̄ r┐ .:.:.:.:.:.:.:.:.:.:: ̄ ̄7|::::::.:.:.:.:.:.:.:.::::/_ ス::ノ}.―t;:'‐イl7フ}¨「f'l< }: {_,{.l ] }})、___, -‐.'ニ';‐- 、_, .:.:.:.:.:.:.::::::::::::::::::::V7ー―--くヽ「_::::〉iイ}7フ/¨‐ヘ`-<∠ノ-'`ー┴’フ>ヾミ'_ソス`ー--- '´ `'ー-‐ .:.:.:.::::::::::::::::::::::::::::rヲマ_ト-レ`.:.:'==イ〈 } } _<i ̄Zオ | l 厂‐┘ヽヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ .:.::::::::::::::::::::::::::::r┴┐:.:.:.:.:.:.:.:.:.:.:.:__;}.:.ヽノ.ノr=='O.rァノ l l l: : : : : : ヽ\
14 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:21:15 ] boost::gil opensource.adobe.com/gil/ で、デザインガイドのとこに concept ってのがでてくるんですが、これって何ですか? ソースでは使われてないので概念的なことだとは思うのですが。
15 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 14:32:21 ] 「C++ concept duck-typing」でぐぐれ。
16 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 16:58:58 ] わかったような、わからんような・・・とりあえずサンクス
17 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 19:29:39 ] C++0xでも採用予定なんじゃなかったっけ concept_mapだっけか
18 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:32:41 ] >>14 ttp://www.boost.org/more/generic_programming.html ttp://boost.cppll.jp/HEAD/more/generic_programming.html この辺とか。
19 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:38:25 ] >>17-18 サンクス。 C++0xで採用予定っぽいのは調べてるうちにわかった。 とりあえず、concept = 実装を伴わないインターフェース って風に理解した(おおざっぱだけど)。
20 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:33:02 ] >>14 先取り実装 つwww.generic-programming.org/languages/conceptcpp/tutorial/
21 名前:デフォルトの名無しさん [2007/04/12(木) 19:06:41 ] 下記のコードで A( 1 ) in block A( 2 ) ~A( 1 ) out block ~A( 2 ) みたいな出力を期待したのですが、違いました。 ばぐですか? ソース: struct A { A(const int id) : id_(id) { cout << "A( " << id << " )" << endl; } ~A() { cout << "~A( " << id_ << " )" << endl; } int id_; }; int main() { boost::shared_ptr<A> a(new A(1)); boost::weak_ptr<A> wa(a); cout << "in block" << endl; if( boost::shared_ptr<A> aa = wa.lock() ) { aa.reset(new A(2)); } cout << "out block" << endl; return 0; }
22 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 19:36:15 ] 普通に考えたら A( 1 ) in block A( 2 ) ~( 2 ) out block ~( 1 ) じゃないか?
23 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 20:32:36 ] > if( boost::shared_ptr<A> aa = wa.lock() ) { うへえ、キモい
24 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 21:05:05 ] そうか?
25 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:44:37 ] >>23 kwsk
26 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 00:37:03 ] aaの生存期間ってif文終了時点まで、であってるかな
27 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:08:14 ] // ericne, 27/nov/05: CW9_4 doesn't like if(shared_ptr x = y) shared_ptr<Derived> dep = cur2->lock(); if(dep.get()) { sout << "0x" << (void*)&*dep << ','; } 使うべきだが使えない。 いつものパターンです
28 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:47:29 ] int main() { boost::shared_ptr<A> a(new A(1)); boost::weak_ptr<A> wa(a); cout << "org: 0x" << (void*)a.get() << endl; // org: 0x0x00033480 cout << "in block" << endl; if( boost::shared_ptr<A> aa = wa.lock() ) { cout << "aa: 0x" << (void*)&*aa << endl; // aa: 0x0x00033480 aa.reset(new A(2)); cout << "reseted aa: 0x" << (void*)&*aa << endl; // reseted aa: 0x0x00037118 } cout << "out block" << endl; return 0; } 27氏がなにが言いたいのか分からない件について
29 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 08:23:51 ] 27はifの中での変数宣言が使えないコンパイラがあるとでも言いたいんだろ。 でもこれforでの変数宣言よりも古くかあるんだけどな……。
30 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:01:06 ] shared_ptrでは、ということだろ。 詳しい条件は知らない
31 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:41:52 ] みんな CVS から落としてきたやつを使ってるの? それとも 1.33.1 ?
32 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 11:40:48 ] linuxでopenvrmlというライブラリをビルドしていたんですが、 boost/ptr_container/ptr_map.hpp というファイルが見つからないというエラーが出てmakeにコケてしまいます。 /usr/include/boost/にboostのファイルはあるみたいなのですが、 /ptr_container/がディレクトリごと存在していません。 boostには/ptr_container/があるものとないものがあるのでしょうか? yumでboostをインストールしたところ、 /ptr_container/は入っていたのですが、 /usr/local/include/boost/ にインストールされてしまいました。 /usr/local/include/boost/のものを/usr/include/boost/に上書きしたらまずいでしょうか? ちなみに/usr/local/include/boost/ptr_container/だけを/usr/include/boost/ にコピーしてみたところ、別のboostのファイルの関数名と衝突?してしまいました。 boostにはいくつか種類があるのでしょうか? boostに対してもlinuxに対してもそれほど詳しくないので質問が曖昧で申し訳ないのですが、 何かアドバイス頂けるとありがたいです。
33 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 11:49:59 ] winだとcvsからのをビルドできたよサイト見ながらだったがまあvc8+stlportができなかったが
34 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 11:54:40 ] >>32 ptr_containerが入ったの割と最近だから
35 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 19:41:27 ] そういや久しぶりにチェックアウトしたらBoost.BuildがV2になったんだな。 -sTOOLSやっても変な警告でるし-sBUILDも効かないしで悩んでしまった。
36 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 20:01:05 ] V2 でいろいろ変わっているね。Visual Studio 2005 使用中。 --toolset の指定で vc80 ってできない。自動判定で msvc になる。 以前ライブラリのファイル名に vc80 って入っていた部分が vc になってるのでオートリンクで見つけられないなどなど。 Visual Studio だからかな。ほかの環境ではどう? 1.34 全然リリースされないね。
37 名前:32 mailto:sage [2007/04/27(金) 00:43:09 ] >>34 レスありがとうございます。 なるほどそういうこともある訳ですか。 現在も色々と追加修正されているということですね。 試しに1.33.1のソースをmakeして、元からあったboostと置き換えてみたところ、 ライブラリのmake自体にはコケたものの関数名の衝突はなくなりました。 boostについての疑問は解決しましたので後は自分で頑張ってみます。 ありがとうございました。
38 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 02:26:44 ] >>36 --toolset=msvc-8.0 でおk 自動でバージョンが入らないのは多分バグ。
39 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 20:27:20 ] lists.boost.org/Archives/boost/2007/04/120375.php >The first beta of what will become version 1.34.0 is now キタ━━━━━━(゚∀゚)━━━━━━!!
40 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 21:21:11 ] まああれだsvnでやってるからあんまかわらなん・・・・・・・
41 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 22:21:56 ] >>38 ほほう。情報THX。 俺自分で Exepress CX つかってバイナリパッケージ作ってるんで、 次にパッケージングするときにやってみるよ。 パッケージって言っても所詮大学の研究室の学生数人で使うだけだが。
42 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 18:41:41 ] serializationで複数のDLLにまたがるクラスをシリアライズするコードを書くと DLLとEXEの動的初期化中にextended_type_infoの登録が複数回実行されるらしく extended_type_info.cpp 74行目の assert(lookup(eti) == m_self->m_map.end()); にひっかかってしまって困っています。 lists.boost.org/boost-users/2005/09/14096.php や comments.gmane.org/gmane.comp.lib.boost.user/25434 なども同じ問題のようで 登録の重複を許すとなにやら問題が起きるらしいんですが DLLとEXEごとにstaticなものがあちこちに分散するので重複を防ぐのは難しそうです。 boostのソースを書き換えるしかないですか?
43 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 03:14:16 ] move_ptrってどういうものなんでしょうか?
44 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 14:05:09 ] >>43 std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1377.htm
45 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 07:55:45 ] svnリポジトリはどこ? sf.net は CVS だけ?
46 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:34:08 ] めもめも boost::tokenizerでwchar_tを使うには <boost/tokenizer.hpp>のclass tokenizer宣言の後に typedef tokenizer< char_delimiters_separator<wchar_t>, std::wstring::const_iterator, std::wstring > wtokenizer; とか追加すれば良いっぽい。 と思ったけど同じようなことが数年前に個人舞炉愚に既に書いてあるな。 ノイズにしかならん。俺は馬鹿か。
47 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 13:21:39 ] 1.34あたりにはデフォで入ってたりせんかのう
48 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 16:16:24 ] >>45 CVSだけー 次にどっから来たか書こうか
49 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 07:05:39 ] svn便利なのになー
50 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 04:00:00 ] 21 名前:デフォルトの名無しさん[sage] 投稿日:2006/09/24(日) 17:51:52 Visutl Studio 2005 Express Edition で Boost をインストールしようとしたのですが ワーニングがいっぱいでて1時間以上まって エラーも5個でて、 regexp の例題をコンパイルしてもエラーでだめでした。(エピステーメさんのHPの) Boost を 2005 EE にインストールする方法を書いてあるHPがありましたが教えてください。 よろしくおねがします。 34 名前:デフォルトの名無しさん[sage] 投稿日:2006/09/26(火) 12:54:58 >>21 多分一部のlibコンパイルに失敗してる 奇遇にも昨日EEへの導入したときに同じヘマしたので俺の場合の解決手順を書いとこう EEインスコの自動設定以外の(SDKとかへの)パスは通してない set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat をDOS窓に投げて実行 bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install 事前にDOS窓の高さバッファ9999にするとか --prefix をわざとD:\Prog.. ってして作業内容把握できるようにすると判りやすいかも
51 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 09:00:19 ] 関係ないけど、DOSってscriptコマンドみたいのは無いのかね
52 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:13:28 ] 本当に関係ないね。
53 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 03:12:56 ] しかしboostは、アルゴリズムや数学に関する機能は豊富だけど、 アプリ開発にはいらんような機能ばっかだな。 まあC++の用途を考えれば、そういうのに偏るのも分からないでもないが。 個人的にはXMLのパーサを入れてほしい。
54 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 04:28:04 ] 言いだしっぺの法則
55 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 04:58:28 ] apache のヤツでええやん。
56 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 10:26:34 ] boostはC++の委員会によって標準化されたライブラリだからこそ使うに値する。 よく使われるような機能がないからといって、 その辺で公開されているライブラリを使おうというのであれば、boostの存在価値が薄らぐ。
57 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:02:28 ] じゃあいつまでも独りでグチグチ言ってろ
58 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:54:00 ] spiritは面白いけどコンパイルが重すぎるなぁ
59 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 19:29:54 ] XMLパーサなんかいらねえよ でもそのうち入るんだろうなあ
60 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 19:53:31 ] SerializationのXML読み書き部分から独立なんてことになったりして。 xml_archive読んだことないから、そんなことができるかどうかは知らないが。
61 名前:デフォルトの名無しさん mailto:age [2007/05/07(月) 20:00:15 ] boost1.34.0をVisualC++7.1(2003)でコンパイルしたのですが、 同じライブラリファイルで名前にバージョンが入るのと入らないのができてしまいました。 たとえば、 boost_filesystem-vc-mt-1_34.lib と boost_filesystem-vc-mt.lib です。 なぜ二つあるんでしょうか? そしてどちらを使えばいいんですか?
62 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:04:18 ] バイナリを比べて見たら?
63 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:14:11 ] まったく同じものです。 Windowsではシンボリックリンクが使えないので、 このように同じファイルを用意したのでしょうか?
64 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:16:09 ] >>63 Jamfile読めば分かるけど少なくともNTFSではハードリンクになってるはず。
65 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:32:27 ] bjamのコマンドの末尾に > log.txt つけるのでもいいぜ。
66 名前:デフォルトの名無しさん [2007/05/07(月) 20:57:49 ] バージョンのついてるのとついてないの、 どっちをリンクすればいいんですか?
67 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:10:50 ] VCならパスの設定しておけば自動でリンクされると思うが
68 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:20:40 ] >>59 俺は欲しいが
69 名前:デフォルトの名無しさん [2007/05/09(水) 00:50:40 ] XMLパーサーもまだ入ってないのか。まさに無駄な糞ライブラリだな。
70 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:11:43 ] progress_displayはあるけどな
71 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 02:25:57 ] >>5
72 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:24:42 ] だいたい余分な機能が多すぎなんだよ。八元数なんていったい誰が使うんだ。 そりゃ使うやつはいるかもしれないが、準標準C++ライブラリを謳うBoostに入れる意味があるのか?
73 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:36:38 ] 要らない人は使わなければ良いだけでは?
74 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:36:57 ] 3Dで使う人もいるんでない?
75 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 23:41:58 ] 四元数は使うだろうけど、八元数まで使うの?
76 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 01:25:06 ] クォタニオンも3Dグラフィックス以外では使い道なさそうだなあ。 それにDirectXにはクォタニオンのクラスが元々あるんだからそれ使うだろうし、 OpenGLにも多分あるだろうからわざわざBoostのを使う人はいないだろう。
77 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 01:29:26 ] OpenGLにはクォタニオンは無い。DirectXのはいろんな意味で使いにくい。 複素数なんかと同じ意味で「標準ライブラリ」に組み込まれるのはおかしくないと思う。 複素数だって使わない人はいるでしょ?
78 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 01:37:50 ] じゃあクォタニオン使わずにuBLASの行列で演算すればいい。
79 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 01:45:08 ] 4と4x4じゃコストに差がありすぎる。
80 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 02:23:26 ] お前ら、progress_displayが泣いてるぞ。
81 名前:デフォルトの名無しさん [2007/05/10(木) 12:16:14 ] ここでboostの質問してもよかですか?
82 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 13:04:28 ] progress_displayって生きてる意味あるの? まぁ、もうとっくに死んでるんだけどね。 お前ら実はシックスセンスの持ち主なんじゃないの?
83 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 13:46:14 ] いいえ、僕はセックスシンスの持ち主です。
84 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 14:21:27 ] 僕はソックスモエス
85 名前:デフォルトの名無しさん [2007/05/10(木) 14:48:05 ] グラフ関数のまとめサイトある? なんか面白そうな事が書いてあるから使って見たいんだが
86 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 14:57:22 ] syrinx.q.t.u-tokyo.ac.jp/~yas/graph/tutorial.html
87 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:29:34 ] >>86 学校の問題でSTL使ってるのはじめてみた・・・・・orz
88 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 19:04:08 ] ブーストを使うお前らブースターだな
89 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 00:55:06 ] >>86 こりゃいいや。ブックマークいれといた
90 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 12:43:17 ] cmake どうなるんだろ unix,win混在環境なので非常に気になる
91 名前:デフォルトの名無しさん [2007/05/11(金) 18:11:00 ] >>86 こういうページを見ると 東大すげえなって思う
92 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:05:07 ] >>86 精神衛生上非常に好ましいな
93 名前:デフォルトの名無しさん mailto:age [2007/05/12(土) 18:31:40 ] using namespace std;
94 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:39:35 ] >>93 この俺様のソースファイルでは、名前が衝突してないよという意味だからいいだろ、別に。
95 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:05:29 ] >>94 微妙にとげのある言い方だな
96 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:30:32 ] using namespeceを使うのは、gotoを使うのと同じぐらい初心者だ。
97 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:47:03 ] 「gotoは絶対にダメだ」と言う奴は「自称上級者、実際初心者」だ。 using namespaceもgotoと同様に、絶対ダメなものではない。 96こそがホンモノの初心者だ。
98 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:53:40 ] まだ経験が足りないだけかもしれんがgoto使わないとヤバイって状況には陥ったこと無いな 例外を使わざるを得ないって状況はC++やり始めた頃から結構遭遇してるけど 制約が多い環境でのプログラミングならそういうのもよくあることなのかゐ?
99 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:55:13 ] 上級者という者は、初心や上級というものを気にしない。 という自己言及のパラドックス。
100 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:12:05 ] >>98 C++だと例外があるからな。 Cだと異常処理の時に便利だよ。(マクロとコーディングルールも合わせて使うけどな)
101 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:12:06 ] gotoやループ内でのswitch-caseによるフラグ操作も原則禁止だな。 ただし状態遷移のプログラムの場合は堅い設計の上で意図的に使う。 問題の本質がそうであるから。
102 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:37:54 ] 兵が恐れずにusing namespaceを使うスレでも立てるかな
103 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:47:27 ] そんな話、C++初心者スレかどっかでやれよ
104 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:52:29 ] Regexって日本語通るようになりましたか?
105 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:11:54 ] 「日本語通る」というのにもいろいろ水準があるような?
106 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:14:36 ] ワイド文字バージョンなら今も昔も使えてるんじゃね。 サロゲートペアが混ざった場合にどうなるか知らんけど。
107 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:16:20 ] 2重ループの抜け出しには迷わずgotoする俺は真の猛者。
108 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:19:53 ] SJIS範囲内だけでいいなら16bitSJIS使うという裏技もある
109 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:23:06 ] UTF-8使え
110 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:25:19 ] >>109 アホ発見
111 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:38:41 ] EUCを使え
112 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:40:42 ] ヘッダファイルでは使わんが、 ソースで using するのは別によくね?
113 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:46:21 ] 画面内に収まる程度のコード内なら普通に使う。
114 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:47:38 ] 関数スコープ内だったらusing宣言は自由に使っていいと思う。
115 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:49:29 ] 書くときは楽だが、保守するときは大変。 なので、stdしか使ったことないな。
116 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:51:35 ] 使わないほうがその関数を使ってる場所を検索一覧するときに楽。
117 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:00:48 ] 長い名前空間があった場合ってどうしてる? エイリアス作るの?
118 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:04:11 ] namespace hogehoge = sexualvioletmikomikonurse;
119 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:11:23 ] エイリアス作るの?の意味がわからなかったのか?
120 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:29:10 ] sumimasen
121 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:47:08 ] 実際何文字あっても先頭数文字が特徴的ならIDEの補完で終わるからいいんだけどな
122 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:49:22 ] 入力が面倒なんじゃなくて、 sexualvioletmikomikonurse::tokachitukuchite::gossungossungosunkugi(...); なんて読みたくないだけ。
123 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:50:26 ] つか、実際にそういう名前に遭遇するか? 俺は経験ないが
124 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:56:12 ] まあないけど。
125 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:56:52 ] >>122 真ん中のがなんだか解らなかったのが悔しい。 セクシャルバイオレットみこみこナース::とかちつくちて::ごっすんごっすん五寸釘();
126 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:34:50 ] やっぱヘッダの中でusingするのは抵抗感じるな。 includeの後だったら影響無いのは判っているけどね…… ソース中でusingしたときのリスクってなんかあったっけ?
127 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:39:43 ] ↑↑アイマスじゃなかったっけ? 実物は見たことないけど。五寸釘は知らない。
128 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:40:46 ] >>126 using って using directive なのか using declaration なのかどっち? どちらにせよ >includeの後だったら影響無いのは判っているけどね…… はちょっと意味が分からないのでもうちょっとkwsk
129 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:43:08 ] >>126 using namespace foo; は原則として使わない。 using foo::bar; は必要があれば使う。 ネームスペース全体をusingすると、先方のネームスペースの変更で名前が衝突するリスクが発生する。
130 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:46:46 ] >>127 アリス・マーガトロイド
131 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:48:00 ] すごい勢いで話がずれてる
132 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:55:10 ] sumimasen
133 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:56:11 ] >>122 全部分かってしまった俺は負け組み。
134 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:01:16 ] 参考書だとスペースの都合上 using するのは仕方ない。
135 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:02:49 ] C++は木材資源にも優しい言語でした
136 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:04:39 ] アイマス作るの?の意味がわからなかったのか?
137 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:09:12 ] ヲタばっかだなこのスレ
138 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:12:01 ] boost::shared_ptr< boost::variate_generator< boost::mt19937, boost::uniform_smallint<> > > みたいなのは適当にtypedefしとけって事ですか?
139 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:14:22 ] うん
140 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 07:19:30 ] ↓他人のtypedefの定義名が気に入らなくて、結局、全部のソースを直した奴
141 名前:デフォルトの名無しさん [2007/05/13(日) 10:11:47 ] Boost 1.34 age
142 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:18:16 ] ↑ 新機能も使わないのに何となく入れ替えてみる奴
143 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:37:04 ] >53 DOM オブジェクトが返ってくるわけでもないんで望んでるものとは違うだろうけど、機能限定版 XML パーサーは Property Tree に入ってるはず。 Review は Accepted だけど CVS 上にはない…と思ったら、なんか今日 CVS 上にもあがったっぽい。 まだドキュメントがないらしいんで↓のレビューから辿れるところあたりを参照。 ttp://lists.boost.org/boost-announce/2006/04/0087.php ttp://lists.boost.org/boost-announce/2006/05/0092.php Property Tree 自体は任意の木構造状データを表現するためのライブラリで、INI とか JSON、果ては Windows レジストリとかも扱えるそうな。
144 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:19:30 ] Boost1.34リリースですか。 Filesystemもようやっと国際化(UTF-8/UTF-16対応)か。 Xpressiveがboostの仲間入りですな。 Xpressiveて、マルチバイトOKだったっけ? ドキュメント斜め読みする限りは対応していなさそうな感じだったけど……
145 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:26:31 ] ドキュメント斜め読みしたらそのものずばりがあるようなんだが。 試してないが。
146 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 13:47:05 ] あ、localeに対応しているって書いてあるね。スマソ。 後で試してみよう。
147 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:53:05 ] 1.34来てるのになんでこんなに盛り上がってないの?
148 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 07:40:42 ] cvs派が結構いるから、ドキュメントさえあればって感じ
149 名前:デフォルトの名無しさん [2007/05/14(月) 12:41:26 ] visual studio 2003にboostをインストールしたら boost::reg_expression<char> regex = "[a-zA-Z].*[a-zA-Z]"; でerror C2262: 'regex' : 破棄できません。 というエラーが出ます インストール失敗?
150 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 14:51:31 ] >>53 そういうのは別のライブラリを使え、ってことじゃないかなぁ。 って、何がスタンダードなのかな。 Expat とか libxml とか? Windows なら MSXML もあるね。
151 名前:C2262 [2007/05/14(月) 14:52:48 ] Compiler Error C2262'identifier' : cannot be destroyed msdn2.microsoft.com/en-us/library/aa983690 (vs.71).aspx The object cannot be instantiated because the appropriate destructor, though defined, is not accessible. The following sample generates C2262: // C2262.cpp class B { ~B(); }; class D : public B {}; D d; // C2262, B's destructor is private
152 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:35:40 ] >>149 代入演算子とコンストラクタの違い分かってる? boost::regex regex("[a-zA-Z].*[a-zA-Z]");
153 名前:デフォルトの名無しさん [2007/05/14(月) 17:23:49 ] ところで、漏れ Windows でのプログラミングってあんまりしたことなくて、 たまに下としても市販のライブラリを購入したことがなくて、 フリーのものばかり(代表的なものが boost)使ってきたんだけど、 市販の開発用ライブラリはどんなインストーラになってるの? インストールすると C:\Program Files\ 以下にインストールされてしまうの? 自分で Boost を Windows にインストールするときには C:\usr\lib とか C:\usr\include とかにライブラリのバイナリとヘッダを 置いているんだけど、Windows 的流儀ってのがあるのかな? つーのは、1.34 も出たことだし、内輪で使うためにバイナリパッケージを インストーラつきで作ろうと思ってるんだけど、パスをどうするかが 人それぞれで好みが違うってことが分かってデフォルトは何にしたらいいのかなって。
154 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:54:46 ] >>153 Program Files\xxx\includeにヘッダ、Program Files\libにライブラリが一般的だと思う。 インクルードパスや、ライブラリパスがやたらと長くなるけど、プロジェクトに一回設定したら 実際のコマンドライン生成はIDE任せなんで気にしない。 unixでもpkgconfig使いだすと、コマンドラインで1kbyteとか行ったりするし。
155 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 18:22:54 ] マニュアルのsplitの説明が間違ってる string str1("hello abc-*-ABC-*-aBc goodbye"); typedef vector< string > split_vector_type; split_vector_type SplitVec; // #2: Search for tokens split( SplitVec, str1, is_any_of("-*") ); // SplitVec == { "hello abc","ABC","aBc goodbye" } // ↑これ誤り。正しくは "hellow abc", "", "", "ABC", "", "", "aBc goodbye" // is_any_ofは正規表現的には[-*]つまり「a-*-b」は「a,,,b」のような意味 ※ boost::algorithm:splitはdisplay_progressの兄貴分w
156 名前:デフォルトの名無しさん [2007/05/14(月) 20:24:03 ] なるほど、インクルードファイルについては各ライブラリの ディレクトリ以下の include に、バイナリについては \Program Files\lib という共通のディレクトリというわけですか。 バイナリが共通のディレクトリになっている理由は 動的リンクライブラリへのパスを一箇所にまとめるためですかね。 スペース入りのパスにいろんなものを置くのが気持ち悪くて、 Windows での流儀を知りたいと思っていました。
157 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:13:12 ] デフォルトは C:\Program Files\組織名\ソフト名\ の下にして、気持ち悪い人はインストーラの操作で 変更できるようにするのが良いと思う。なお、C:\Program Filesなどのパス名はハードコードしないで SHGetSpecialFolderPath などで取得するべし。(念のため)
158 名前:デフォルトの名無しさん [2007/05/15(火) 06:59:15 ] >>157 インストール先ですが、組織名ってのはとりあえず省略して、 C:\Program Files\Boost で。パス名については ExePress CX でパッケージングすると自動的で取得してくれるようです。 シェアードオブジェクト(dll)も C:\Program Files\Boost\lib 以下に配置すべきですかね? それともすでにパスが通っているどこかにコピーすべきでしょうか。 しかし C:\Windows\ 以下なんぞに *.dll をコピーすると ぶっ殺されそうな気がするので、これまた Windows の流儀ってのが あるんでしょうか?
159 名前:デフォルトの名無しさん [2007/05/15(火) 07:02:22 ] ちなみにすでに C:\Boost\ をデフォルト位置にした 1.33.1 と 1.34 の Windows + VC++8 用バイナリパッケージと ICU のバイナリパッケージは作りました。あとは 1)C:\Boost\ って Windows 的にはどうよ。 2)アンインストーラ対応にすべき? それとも単にターゲットフォルダに展開して終わり? 3)DLL はデフォルトでパスが通ってそうなところに突っ込むべき?
160 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 10:41:54 ] アンインストーラにも対応してないような半端なインストーラなんて無いほうがまし。 レジストリを書き換えたり、スタートメニューに挿入したりするのなら、アンインストールにも 対応するべきだし、そうでないプログラムなら単純にZIPファイルで配布するのが良いだろう。 ご存知だと思うが、標準でWindowsではZIPファイルはフォルダとして見える。 どうせプログラマしか使わないのだから、配置は任せるのが良いんじゃないかな。
161 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:40:19 ] >160 Win2kはwindowsじゃないですか、そうですか・・・
162 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:41:49 ] 終わってるWindowsだな。もちろん終わってるから悪いというわけではないけど。
163 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 12:10:07 ] だがそれがいい
164 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:10:21 ] >>161 homepage2.nifty.com/winfaq/w2k/hints.html#1071
165 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:47:54 ] 圧縮フォルダが使えることと、zipがシームレスにフォルダに見えることは同じ事なのか?
166 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:58:24 ] 圧縮フォルダでZIP書庫はフォルダとして見えるがシームレスではない
167 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 18:00:57 ] 所詮はshellのオマケ機能だしな。 NTFS標準の圧縮フォルダならシームレスと言えるのでは。
168 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:18:29 ] >>129 その書き方じゃあ、ネームスペース全体をusingしなけりゃ その問題が起きないように読めるが、そんなことは無いだろ? ADLあるし。まあ、程度の差はあるだろうが。
169 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 00:10:25 ] これはなんなの?
170 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:27:14 ] ::: 唐突に ::: boost::gui の話ってどうなったの?
171 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:58:45 ] C++でクロスプラットフォームなGUIはQtを使えばいいだろ
172 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 07:22:43 ] 他にもwxやらGtkやらfltkやら乱立してるからなぁ・・・ 良い物ができたとしてもboostの入り込む余地はあるんだろか
173 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 10:20:17 ] Notusちょっと面白そうだったが…放置されてるな
174 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 10:43:34 ] >>171 商売物で使うには法外な値段
175 名前:デフォルトの名無しさん [2007/05/22(火) 12:24:48 ] dotoneto
176 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:10:41 ] GUIに速度は不要だからもはやC++でGUI作る意義は薄いと言えなくも無い スクリプトエンジンに外注した方が楽だな
177 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:22:57 ] UIもOpenGLやDirectX使うのが今の流れ
178 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:40:55 ] CUIでも?
179 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:42:35 ] CUI自体が今の流れじゃないだろw
180 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:32:04 ] >>177 cairo使うのが今の流れ。
181 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:23:34 ] GUIはズールで
182 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:28:02 ] 2;\cGDI;y5u/90%.e/)4tu@jxf,/4x/d0-:/y/?
183 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:05:03 ] c++と組み合わせて使うのに便利なGUIってなんだろ c++である必要もないんだよね
184 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 18:24:36 ] ATL+WTL
185 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 20:18:40 ] CUIに2本毛が生えたのがGUI
186 名前:デフォルトの名無しさん [2007/05/23(水) 20:30:57 ] C++/CLI ・・・ってすでに C++ じゃないか。
187 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:11:11 ] GUIと一口にいっても、グラフィックをバリバリ使うようなソフトは やはりC++でないと処理が追いつかないこともあるから使われるだろう。 そうでない伝票入力とか在庫管理とかのオーダーメイドアプリは もはや完全にWebに移行している。 もっともユーザインターフェースが最新のWebでも、 データベース入出力はいまだにCOBOLが使われたりするところもあるわけだが。
188 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:12:29 ] まあboostを使うような人はそういう売り物ソフトとはまったく無縁の人たちだろうけど
189 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:19:22 ] 基幹にはやはりCOBOLを選ぶ by 不治通
190 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:22:12 ] NECのACOSシリーズもCOBOLだよ
191 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:46:49 ] Webアプリって紙の呪縛があるだろ。 帳票とかネックになんないの?
192 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:48:31 ] Japanese OK.
193 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 09:36:00 ] 質問してもいいですか? 環境:c2d,OSX,i386,ppc(ロゼッタで確認だけ),Carbon使用 試してるboostライブラリは全てスタティック用でi386とppc(両方32bit)のユニバ 最適化はO0〜O3まで全部試してます。 regexライブラリをリンクしただけで、コード内で使わなくても2286byte〜3???byteメモリリークしちゃう 1331と1340リリース版両方で同じ状態、i386実行とロゼッタ実行でリーク量が数byte違ったり ライブラリのO0〜O3の影響でもリーク量が変わってます、が、リンクしただけでリークするのは変わらず。 誰か修正方法知りませんか?、LeakTracerでソース位置が特定できなくて自分のレベルでは追いきれず。 (リークはするけど正規表現の動作そのものは一通り問題なかったりします、2286は固定で持ってるテーブルかなにか??) (regex以外のビルドの要るライブラリはfilesystemくらいしか使ってませんが1331でも1340でもリーク無し) xpressiveをOSX(Carbon使ってる状態のXcodeプロジェクトでしか試してないけど)で使うには struct nil;とかのnilがobj-cのnilあたり?と被ってるようなので ローカルな名前で書き換えて良さそうなnilは全部リネーム これで"static regex"ではないregex風の方は一通り動きます、regexとほぼ同じに使えてリーク無しなのでこっち使ってます。 Let's boostさんにある"static regex"の方は boostヘッダ側のエラーの表示された順に危なそうな変数名でローカルな物をリネームしてみていっちゃうと compile_resultの typedef typename compiler_type::BOOST_NESTED_TEMPLATE apply<op_type, State, Visitor>::type type; で行き詰まりました。誰か対処方法知ってたら教えてください、高速らしいのに使えなくてしょんぼりorz
194 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:17:42 ] 訂正 #include <iomanip> #include <boost/xpressive/xpressive.hpp> の順でインクルードしておけば"static regex"いけました、無知でごめんなさい
195 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:54:59 ] 質問するならそれなりの書き方があるだろう。 〜ちゃうとか、orzとか、2chだからまともな書き方しなくていいと思ったら大間違いだ。
196 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:58:16 ] べつに訊き方なんでどうでもいいと思うが。 気に食わない奴は答えなきゃいいんだし。
197 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 13:08:51 ] 僕は回答者をやってるつもりだから偉いんだぞお! って言いたいだけだから華麗にスルーでいいよ
198 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 13:59:38 ] マルチを毛嫌いしてるのとか、マルチは悪みたいな風潮もなんだかなーと思う。 なんか昔のfjみたいな堅苦しさを感じる。別に感謝されたくて返答してるわけじゃないんだし。 マルチ嫌いをスルーすりゃいいんだけど。
199 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:03:51 ] いや、悪だろw その自覚がないのはもっと手に負えないな。 どうしても複数箇所に投下したいなら、 その旨を記述しておくべき。
200 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:43:57 ] >>198 おまえ fj で苛められてただろw
201 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:02:15 ] NetNewsの場合は、 一つの記事を複数のグループにpostする機構があり、 ヘッダを見れば、他にどこのグループにもpostされていたか分かった。 メールのTo:のようにNewsgroups:に複数グループを記述できた。 この機構を使わず、個別にpostする行為のことをマルチポストと言ったから、 技術的に批判するだけの根拠があった。 豆知識な。
202 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:02:10 ] >>198 お前、マルチがなんで嫌われるのか本質的なことを理解できてないだろ。
203 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:14:07 ] スレ違いで伸びるウザさも理解して欲しいもんだがなぁ。 まぁ自分にだけ寛大なのはお互い様ではあるが。
204 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:25:18 ] 手広く書き込んだほうが回答を得られる確率が上がるのでインターネットリテラシーに優れているといえるでしょう。
205 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:27:47 ] 電柱一本に尋ね人のポスター貼るより 電柱百本に尋ね人のポスター貼る方が効果的
206 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:44:38 ] 合理的
207 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:57:08 ] コスト対効果の問題 電柱一本に貼るのと電柱百本に貼るのとで、は前者の方が経済的
208 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:28:49 ] 電柱全部が自分の自由にして良いものだと思ってるのが間違い。
209 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:24:56 ] 電柱全部が自分の自由にして良いものだと思ってると思ってるのが間違い。
210 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:28:45 ] スレ違い
211 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:48:18 ] 電柱に立ちションするとbootsが汚れるからやめような せめて座りション
212 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:56:41 ] 電柱にウンコしちゃだめだからね
213 名前:デフォルトの名無しさん mailto:age [2007/05/25(金) 09:50:03 ] boostのいい日本語リファレンスマニュアルがないので、 wikiを作ろうと思うんですが、作ったら書き込んでくれるひといますか?
214 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 10:04:24 ] 俺が個人的に使ってる誤訳抜け満載のを張ってやるよ
215 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 11:52:56 ] >>213 新しく始めるより、翻訳プロジェクト進めてくれよ。
216 名前:デフォルトの名無しさん mailto:age [2007/05/25(金) 12:39:30 ] 翻訳プロジェクトはどこにあるんですか?
217 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 12:45:16 ] >>216 >>1 boost.cppll.jp/ 崩壊気味だけど。
218 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 13:19:13 ] こんだけライブラリの数が多けりゃ 翻訳プロジェクトとか途中で頓挫するに決まってる
219 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 13:22:50 ] 一対一対応の翻訳を目指すから挫折する 俺の書いたprogress displayの訳なんて一行だぞ一行
220 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 13:23:47 ] だからプロジェクトにするんじゃなくてwikiにすればいいんだよ
221 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 15:46:53 ] まスパムが未来永劫無くならない事から見てもマルチの効率はいいんでしょ。
222 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 16:39:17 ] wiki作ってみました。 wikiwiki.jp/boostref/
223 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:09:16 ] pythonでGUI Boost.pythonでc++と結合
224 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:17:42 ] で、pythonのGUIライブラリって何よ? となって振り出しに戻る。
225 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:19:46 ] ptgtkとか、pyqtとか
226 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:20:46 ] wxPython一択じゃね?
227 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:06:35 ] 90%くらいのパソコンはMFCが動くんでないの?
228 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:48:27 ] 個人的にはMediaWikiのほうが慣れているから こっちの乗っ取りでいいじゃないかと思った www.cppll.jp/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
229 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:57:09 ] そこはεπιστημηが管理人じゃねえか。 今はなきCマガジンのそいつの連載を知ってるが、 無知で無教養でネタもつまらん、最低の連載だったぞ。 さらにロリ系のエロ漫画家と交友関係があって、そいつの絵をCマガジンにも載せたほどだ。 Cマガジンが廃刊になったのはこいつのせいだ。俺は絶対許せん。
230 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:03:00 ] はいはい そういうのはよそでやってくれ pc11.2ch.net/test/read.cgi/tech/1091350633/
231 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:14:26 ] >>229 あーあ また博之の名誉毀損の賠償額が増えちゃったよw
232 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 22:27:35 ] >>229 *.cppll.jp の管理人は tietew だぞ。
233 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 23:07:43 ] επιστημηって紀元前のεπιστημηのこと? やっぱり違う?
234 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 23:13:26 ] 紀元前の奴がまだ生きてるわけないじゃん
235 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 07:49:15 ] >>229 エロ漫画家と知り合いなのはエピステーメじゃなくフィンローダの方だぞ。 まあどっちもCマガの記事はつまらんかったが。
236 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:09:52 ] おまえらカウントクラスをバカにすんな
237 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:30:15 ] >>222 今filesystemが書かれているけど pathではなくbasic_pathにしたほうがいいと思う
238 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:36:28 ] wikiなんだから自分で直せば?
239 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:41:25 ] 229の誰かトップに貼れよ
240 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:42:56 ] 記事名を変える方法がわからん。 ってすまん、今名前変更に気が付いた。
241 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:44:05 ] で、変更しようとしたら管理者パスワードを要求された やっぱり俺にはできないようだ
242 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 01:53:30 ] めもめも www.kmonos.net/alang/boost/newslog/?m=200401
243 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:00:04 ] >>242 さすがにちっと古くねえか?
244 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 03:42:14 ] 初歩的な質問で申し訳ありません。 lambdaに条件演算子に相当するものはありますか? 以下のようなファンクタをさくっと書く方法を知りたいです。 struct MyFunctor : public unary_function<bool, const char*> { const char* operator()(bool x) { return x ? "YES" : "NO"; } }
245 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 04:12:32 ] >>244 if_then_else_return(_1, "YES", "NO")
246 名前:244 mailto:sage [2007/05/29(火) 11:36:46 ] ありがとうございました。
247 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 20:50:28 ] $ cat ./test.cpp && g++ test.cpp && ./a.out #include <iostream> #include <deque> #include <boost/lambda/lambda.hpp> using namespace std; using namespace boost::lambda; int main () { typedef deque <double> Container; Container c0; for (size_t i (0); i < 10; ++ i) c0.push_front (i); Container c1 (c0); cout << "max: " << *max_element (c0.begin (), c0.end ()) << '\n'; for_each (c0.begin (), c0.end (), _1 /= *max_element (c0.begin (), c0.end ())); cout << "c0: "; for_each (c0.begin (), c0.end (), (cout << _1 << ' ')); cout << '\n'; for_each (c1.begin (), c1.end (), _1 /= 9); cout << "c1: "; for_each (c1.begin (), c1.end (), (cout << _1 << ' ')); cout << '\n'; return 0; } max: 9 c0: 1 8 7 6 5 4 3 2 1 0 c1: 1 0.888889 0.777778 0.666667 0.555556 0.444444 0.333333 0.222222 0.111111 0 最近lamdaを使いはじめました c0とc1の内容が異なってくるのですがこれはしょうがないんですかね このへんの解説ページなんかあれば教えていただけるとうれしいのですが
248 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 21:34:39 ] 思いっきり/9で割ってるやん
249 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 21:46:55 ] ,,,ィッッシミ彡三ミ、, /彡彡三三三ミミ彡ミ、 /彡彡へ-‐'''゙゙⌒´ヽ、ミミミヘ {彡彡-''゙゙ U ミミヘヘ{ |彡;{ u ミミミミ |彡i ィッァ、 ィ≡ミ、 }ミミミ r-;;{´ ィェァ、}--{ r‐ッ-、 }‐‐;;r''´} ヽヽ_'゙__ノ,' ',ヽ__''゙__ノ :|/::) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ `| /(、, ,, ) :::|::,.} < そろそろイキそうだ、中に出して良いかい? ヽ', ヽ弋''‐'''フ-ノ ,::ノ ハァハァ ヽ,、 `‐‐'''´ ,.::::::ノ /ヽ、__ニ___ノ''゙ .⌒\ アンアン / 人 。 。 丿\ \ \ \| 亠 / / / パン / ̄ ̄ ̄\ \⊇ 干\ ⊆ / i'_liノ |_|iトil_}__,l ( 。 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |i.}┃ ┃ ミ;i|《 /⌒v⌒\ ) < 社長〜中出しして良いから次も主役お願いね♪ |lヽ'' ヮ ''' ,_) l/⌒\ ノ ) | \___________ / | | | | パン | |. Y | |__/ | | パン | |ヽ__人___ノ| ト' | |/^ヽ | | ゜ ゜ | |_/ ヽ__人_ノ ⊆, っ とーっ 〜〜〜〜〜その頃堀江ヲタは…〜〜〜〜〜〜 ほっちゃんは天使だおハァハァ シコシコ (*´Д`) シュッ シコシコ Σ⊂彡_,,..i'"': |\`、: i'、 \\`_',..-i \|_,..-┘
250 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:51:37 ] >>247 なんだこれ… lambdaはデフォルトで定数項を参照で保存するのか。 constantで回避できるけど、なんでこうなってるんだろ。
251 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 00:41:06 ] >247 >250 脊髄反射で全くはずれた事を書きそうになったけど、ちょい調べてみた。 ↓の通り、基本的に lambda は参照ではなくてコピーした値を保持している。 ttp://www.boost.org/doc/html/lambda/using_library.html#lambda.storing_bound_arguments が、(↑にも書いてあるけど)複合代入演算子の左辺は参照で保存される(当たり前)。 で、(多分実装の手抜きのため?)左辺と右辺で参照か値かが異なる場合が対応されていないため、 /= の右辺も(const だけど)参照で受けてしまう。 cf. lambda/detail/operators.hpp そのため、 _1 /= *max_element (c0.begin (), c0.end ()) の代わりに _1 = _1 / *max_element (c0.begin (), c0.end ()) とすると、結果が c1 と同じになる。
252 名前:247 mailto:sage [2007/05/30(水) 03:18:16 ] >>250 ,251 よくわかりました 有難うございます
253 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 09:04:50 ] STLってさbegin (), end ()とか渡さなくても 上記のメンバ関数有るの分かってるんだから クラスのポインタ受けとりゃいいんじゃないの
254 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 09:09:21 ] >253 組み込み配列を渡したくなったときのことを考えてみよう
255 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 09:50:03 ] >>253 boost::rangeがまさにそれをやってる。 >>254 既存のコンテナの一部を渡すのもそうだな。
256 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 10:23:45 ] >>253 オブジェクトへのポインタの間違い? 開始点と終了点を渡すiterator式のインターフェースの方がずっと汎用性がある。 例えば、途中から渡したい場合、 iteratorを持たない集合型オブジェクト上のiteratorを自前でつくる場合、 変換iteratorを使う場合など。 この辺の議論は20〜30年前に決着済みです。
257 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 10:34:58 ] >>256 コンテナがあればイテレータふたつは簡単に手に入るし、 イテレータがふたつあればそれを仮想的なコンテナとみなせるから、 コンテナとイテレータのどっちを基準にしても汎用性は変わらないだろ。 むしろ、利便性の問題。
258 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 10:42:52 ] >>255 > 既存のコンテナの一部を渡すのもそうだな。 などの利便性は、汎用性と言ってもいいのではないでしょうか。
259 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 11:02:56 ] 2つのイテレータを引数に取る関数のラッパとしてコンテナの参照を引数に取る関数を作るのは容易だが、その逆はそうはいかない。
260 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 11:08:07 ] 突っ込みやすい話題だとレスがいっぱい付くね
261 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:08:43 ] >>256-259 するとrangeの存在意義は? というわけで >>253 range_ex
262 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:32:06 ] 関数オーバーロードできるんだから 両方用意しとけばいいんだよな
263 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 18:15:04 ] まーJAVAやVC、BCCのクラスライブラリと違って浅い抽象化だから。
264 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 01:46:46 ] C++の試験ってあったけか?
265 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 06:29:43 ] boostってネットワーク系ある?
266 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 07:17:25 ] asio
267 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 13:03:43 ] >>265 ttp://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostSocket
268 名前:デフォルトの名無しさん mailto:age [2007/05/31(木) 22:08:42 ] 双方向リストに対してboostのregexを使いたいのですが、どうやったらいいんでしょうか。 BidiIteratorを自分で実装すればできるっぽいのですが、よくわかりません。 誰か教えてください。
269 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 23:18:04 ] 何が分からないのか分からないって状態みたいだから、 まずはiteratorについて学ぶよろし。
270 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 23:21:52 ] イテレータはだいたい分かっているつもりです。 std::listなんかでよく使うので。
271 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 23:32:09 ] BidirectionalIteratorの実装法が分からんってこと?
272 名前:268 mailto:sage [2007/05/31(木) 23:47:32 ] たとえば、 struct node{ char c; node *prev, *next; } というノード構造体のリストで構成された文字列があるとして、 これに対してboostのregexを使うにはどうすればいいのかということです。
273 名前:268 mailto:sage [2007/06/01(金) 00:00:33 ] 272のような構造体ではなくて、std::list<char> に対してregexを使う方法でもいいです。
274 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:04:48 ] std::list<char>::iterator ????
275 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:18:45 ] きちんとやろうとすると長くなるので要点だけ。 struct honya : public std::iterator<std::bidirectional_iterator_tag, char> { honya(const node *n = NULL) : node_ptr_(n) { } // あとoperator=()もあったほうが。 honya &operator++() { node_ptr_ = node_ptr_->next; return *this; } honya &operator--() { node_ptr_ = node_ptr_->prev; return *this; } // 同様にoperator--(int)とoperator++(int)も定義すること。 char &operator*() { return node_ptr_->c; } // const版もいるかも。 private: node *node_ptr_; }; boost::regex_search(honya(&first_node), honya(&last_node), ...
276 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:19:48 ] 書いている間に… >>273 それなら、 std::list<char> l; regex_search(l.begin(), l.end(), ... でいけるはず。
277 名前:268 mailto:sage [2007/06/01(金) 00:27:11 ] どうもありがとうございます。 こんな長いコードまで書いていただいて恐縮です。
278 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:40:26 ] >>275 Boost.Iteratorsは?
279 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:53:07 ] regexは文字列に対して使うんだよ。
280 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 20:10:11 ] 文字はcharかwchar_tしか使えないけど、 文字列のデータ構造はイテレータさえ実装すれば自由だよ。
281 名前:デフォルトの名無しさん [2007/06/02(土) 14:52:12 ] using namespace boost:lambda; boost::function<boost::uint64_t(boost::uint64_t)> f = _1 + _1; 引数のboost::uint64_tをunsinged int に変えるとコンパイルできるのですがboost::uint64_tだと c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\boost-1_33_1\boost\function\function_template.hpp(119): error C2440: 'return' : 'boost::lambda::lambda_functor_base<Act,Args>::sig<SigArgs>::type' から 'boost::uint64_t' に変換できません。 とコンパイルエラーになってしまします。 コンパイラはvc7.1です。
282 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 21:20:26 ] boostをインストールする場所なんですが linuxだったら, /usr/local/include にboostおけばいいのかな まだboostに正式にacceptされてないのは /usr/local/share/include あたり?
283 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 21:28:03 ] Linuxだったらrpm様の言う通りw
284 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 21:46:02 ] RHEL5なのでrpmないんです
285 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 00:13:20 ] RHELならサポートに電話
286 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 21:32:16 ] まぁ確かにその為に金払ってるんだしな
287 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 01:56:29 ] Fedora の rpm を使えば良い
288 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:53:31 ] >>287 まじで使えるの?
289 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:54:44 ] たいてい使えるよ
290 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 18:20:45 ] 使えなかったら、rpmbuildするとか。 いろいろあるだろ
291 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 12:06:13 ] MFCのTRACEのようなものはboostにありませんか?
292 名前:デフォルトの名無しさん [2007/06/22(金) 01:59:52 ] Boostで一番高速なアロケータは何よ?
293 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 02:37:51 ] シングルスレッド版のpool
294 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 02:55:08 ] >>293 d 試してみる
295 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 09:30:31 ] >>291 boost.formatを使って、 assert(cerr << (format("value = %d") % value) << endl); とかじゃだめなん?
296 名前:デフォルトの名無しさん [2007/06/22(金) 19:22:42 ] テンプレート関数で引数として渡されたものがdelete演算子の引数に出来るかどうかを concept_checkで保障したいわけなんですが 「delete演算子の引数に出来る」ってことのconceptってありますかねぇ?
297 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 19:32:15 ] すいません速攻自己解決しました>< そのためのconcept作ってやれば良いんですね(汗
298 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 19:59:06 ] 場合によるけど、不完全型のdeleteを認めないようにすることも考えたほうがいいよ
299 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:47:34 ] shared_ptrかなにかでそれチェックしてなかったっけ
300 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 21:12:20 ] checked_deleteを使っているはず
301 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 15:45:18 ] sandboxも含めたら(含めなくてもだけど^^^)とてもじゃないけど全部使いこなせる気にはなれないぜ…
302 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 21:09:17 ] 自分が必要なものが使いこなせればいいんじゃないの といいつつspirit使ってコンパイルエラーになると右往左往する俺
303 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 01:47:20 ] すみません、質問です。 boost::lambdaで、PODな構造体のメンバ変数へアクセスする方法はありますか? 具体的には、以下のような構造体があるときに、 struct MyPOD { int foo; }; 以下のような感じのファンクタを書きたいのです。 _1::foo += 1 どうか宜しくご教示願います。
304 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 02:28:10 ] >>303 bind(&MyPOD::foo, _1) += 1
305 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 02:33:26 ] ( &_1 ->* &POD::foo ) += 1 というような手もあるが、どうみてもbindの方が分かりやすいですね本当に(ry
306 名前:デフォルトの名無しさん [2007/06/26(火) 04:26:32 ] boost::filesystem って wchar_t 扱えるように仕様変更になったんだっけ? boost.cppll.jp/HEAD/libs/filesystem/doc/faq.htm#wide-character_names みてると narow char しかサポートしないよ、へっ、って。 開発してる人に心境の変化があったの?
307 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 07:11:21 ] >>306 そりゃいくらなんでも情報源が古すぎるわw > Revised 09 December, 2003 www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1889.html www.boost.org/libs/filesystem/doc/tr2_proposal.html
308 名前:デフォルトの名無しさん [2007/06/26(火) 09:04:07 ] >>307 おお、ありがとう。 ところで、boost::filesystem::path を使うと Visual Studio 2005 の IntelliSense が UnintelliSense になっちゃうんだけど、 これはどうしようもない?? IntelliSense が無いと生きていけない体になっちゃった。
309 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 09:11:32 ] ヘッダをプロジェクトに加えれば結構効くようになるお
310 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 09:13:02 ] lambdaとかつかうとintelisenceどころじゃないが、一応どうしても使いたいってんなら そういう時はいったん終了して*.pdbを削除して開きなおせばまた認識してくれるようになるよ
311 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 09:24:12 ] *.ncbでしょ 経験上、これを消しても効果ないことが多い で、>>309 のような結論に至った
312 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 09:30:57 ] ほうほうなるほろ 書いたヘッダを自動的にプロジェクトに取り込むようなマクロ使えば自動化もできるし、俺も使ってみるよ
313 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:04:41 ] omaera shinsetsu desu ne.
314 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:36:28 ] だ、だめだぁ ヤパーリ UnintelliSense ダターヨ(笑
315 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:30:33 ] boost::progress_display ってなくなっちゃうの?
316 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:36:52 ] それは困るなあ(笑)
317 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:43:56 ] std::map<int, int> m; : std::for_each(m.begin(), m.end(), /* */); boost lambdaでmap各要素のsecondに定数を代入したいのですが どのようにしたらいいのでしょうか? vectorだったら _1 = N でいいのですが、mapだとstd::pair<const int, int>なのでどうしたらいいのかわかりません。
318 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:32:32 ] ( bind(&std::pair<int,int>::first, _1) = 0 ) これでいけるはずだけどconst intからint&に変換できないとかぬかしやがる もし可能だとしてもconstはずしとか参照作成とか面倒そうなので 素直に関数オブジェクト自作してやった方が楽っぽい
319 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:49:09 ] 志村ー、second,second!!!
320 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:57:18 ] アッー!!えらい勘違いしてたごめんだぜ とりあえずこれでできるっぽい std::for_each(m.begin(), m.end(), ( bind(&std::pair<const int,int>::second, _1) = 0 ) );
321 名前:317 mailto:sage [2007/06/26(火) 16:15:44 ] >>320 ああ、メンバ変数へのポインタ使うんですね。 でも…なんかパッと見分かりづらくて…微妙ですね。 ありがとうございました。
322 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:11:03 ] … map m; { using namespace boost::lambda; using boost::for_each; typedef const map::key_type key_type; typedef map::mapped_type value_type; typedef std::pair<key_type, value_type> pair; for_each( m, bind( &pair::second, _1 ) = 0 ); } { class assignSecond : std::unary_function< std::pair<const int,int>&, void > { public: assignSecond(int value_) : value(value_) {} result_type operator()(argument_type arg) { arg.second = value; } private: int value; }; boost::for_each(m, assignSecond(0)); } … typedefとか使って無理やり「処理してる部分だけは」見やすくしても ローカル関数オブジェクトを使うのと大して変わらない手間だからなぁ(処理効率はlambdaの方がいいらしいけど) 同じ型に一連の処理をするなら最初にまとめてtypedefでもしてシンプルに記述できるかもしれんが いまいち使いどころが分かりにくいライブラリだ…
323 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:56:21 ] pair の型は map::value_type でとれますよ。 ちょっとだけ端折れる。
324 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 20:58:29 ] boost::filesystem::pathのマルチバイト対応予定ってないの…? wpath使えって事なのか?
325 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:07:31 ] boostがというよりC++自体がマルチバイト文字列を 直接いじくることを考慮していない感じ。
326 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:28:21 ] 世の中も何だってUnicodeにすればおkという風潮だしな
327 名前:デフォルトの名無しさん [2007/06/26(火) 22:09:53 ] BOOST_FOR_EACH じゃいかんの?
328 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:25:45 ] なんとなくlambdaが使いたい気分なんでw
329 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 10:10:58 ] range_exって何故sandboxから出せないの? 何か問題があるのかな? 早く使いたいんだけど、sandboxのを仕事で使うのは微妙だしなぁ。
330 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 10:15:08 ] どうせ内部でboost::begin(container), boost::end(constainer)を呼びだして stlアルゴリズムを適用するもの書くんだからsandboxだからと言って避ける必要ないジャンとか思うけど そこはややこしい内部仕様の思わぬ罠とか恐れての事なんだろうね
331 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 02:54:58 ] #include <valarray> //#include <boost/range.hpp> #include <boost/range_ex/algorithm.hpp> int main() { enum { ARRAY_SIZE = 10 }; typedef std::valarray<int> val_array; val_array v1( ARRAY_SIZE ); boost::fill(v1, 0); } みたいな具合にboost:range関係をvalarrayでも使いたいんですが そもそもvalarray使うのが間違いってことなんでしょうか?
332 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 03:35:08 ] valarrayで使うという発想はなかった…… 明日試してみよう。今日は寝る。
333 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 17:08:54 ] valarrayにはbeginとendがないからね。 大域名前空間でいいから自分でbeginやendを定義すればいいと思う。 あとvectorみたいに要素の連続性の保証がないなら、 自前でイテレータを書いてやるのが移植性向上のためにはいいかもしれない。
334 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 20:29:45 ] StateChartは使いどころが今ひとつわかんね アレのお世話になるほど状態遷移が複雑になるならむしろ 専用のツール作って(あるいはExcel使うとか)そのツールからコードジェネレート した方が早いんじゃないかと思ったりする ひょっとして実はすごく多機能なんだろうか・・・
335 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 20:50:32 ] >>333 valarray は要素の連続性を保証してるみたいだよ。 26.3.2.3p3 任意の型 size_t の i 及び 型 size_t の j について、 i+j が非定値の配列 a の要素数よりも小さい場合、 式 &a[i+j] == &a[i] + j は真とする。 vector も今は連続性を保証してる。 23.2.4p1 抜粋 ベクトルの要素は、連続した場所に蓄えられる。 すなわち、T を bool 以外の型とし、v を型 vector<T, Allocator> のベクトルとした場合、 0 ≦ n < v.size()) となるすべての n について、 同一性 &v[n] == &v[0] + n が成り立つ。
336 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:37:34 ] >>334 (゚Д゚)ハァ?
337 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:00:23 ] 意味がわからんならスルーしろよ
338 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 17:42:13 ] >>334 Boost.FSM がレビュー待ち
339 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 17:57:26 ] 一瞬フライングスパゲティモンスターに見えた 有限状態機械だった
340 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 19:21:15 ] uBlasってboostの標準ライブラリですか?
341 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 19:52:52 ] そうだお
342 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 14:56:36 ] そそ。依存してるヘッダをプロジェクト内に突っ込んどくとそこそこインテリ化するよね。
343 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 14:57:45 ] うわ、誤爆したorz
344 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:45:56 ] >>342 そそって言うの止めろよ。気持ち悪い
345 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 17:50:18 ] そそそ
346 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 17:54:36 ] どうだっていいだろ せめてプログラムの事で絡めよ気持ち悪い
347 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 18:20:51 ] やっぱりvalarrayの(賢い方法での)range対応化は無理でした… そもそもこれSTLコンテナのインターフェースじゃないんですよね range関数やrangeイテレータの特殊化が組み込み型一つ一つの場合において特殊化していくような 強引なやり方でしか出来ませんでした><(といっても組み込み型に対してしか使えないから問題なさそうだけど)
348 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:02:26 ] 部分特殊化できないの?
349 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 01:08:17 ] 部分特殊化ってカリー化みたいだな・・・
350 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 21:22:26 ] だからなに
351 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 00:03:09 ] 無性にカレーを食いたくなってきた
352 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 00:09:57 ] 日本印度化計画が脳裏に
353 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 02:11:29 ] 低所得者域は既にインド化済み。 雇用形態は真逆だがな。
354 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 16:09:21 ] >>353 日本じゃ所得に関わりなく奥さんがお弁当とどけてくれたりしないですよ
355 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:08:58 ] サリーさんのような嫁が欲しい
356 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:55:27 ] >>349 むしろカリー化を型志向言語で体現する手法がテンプレートなんじゃないのか
357 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:44:35 ] >>349 >>356 全くの見当違いですので。
358 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:38:36 ] >>349 >>356 テンプレートでは引数の数は変わりません。
359 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:47:10 ] カリー化と引数の数は関係ないんじゃ?
360 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:38:09 ] 関係あるだろ。自由変数が引数になる。 >>349 は全くの逆だが。
361 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:40:45 ] boost::ublasのmatrixって、宣言と同時に初期化できないの? いちいち mat( 0, 0 ) = 1; mat( 0, 1 ) = 2; mat( 0, 2) = 3; みたいな書き方してるとだるいし、コードが読みにくくなる・・・ Blitz++だと、 mat = 1, 2, 3, 4, 5, 6, 7, 8, 9; みたいな書き方できるけど、イテレータがビミョーらしいしorz > T_iterator is an iterator type. NB: this iterator is not yet fully > implemented, and is NOT STL compatible at the present time.
362 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:50:26 ] mat = 1 = 2 = 3 = 4 = 5 = 6 = 7 = 8 = 9; みたいなのは作ろうと思えば作れそうだな。
363 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:21:08 ] >>362 明らかに実装不可能な = を例に出すようなおまえにゃムリだな。
364 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:35:22 ] = は右結合だったな・・・。 << でいいや。
365 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:51:23 ] 右結合云々以前にoperator=はクラス外部で宣言できないから
366 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:58:07 ] せめてboost::assignみたいにmatrix_list_of(1,2,3)(4,5,6)(7,8,9) ってできればいいんだけど
367 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:04:57 ] ttp://sheepman.sakura.ne.jp/diary/?date=200605 #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/io.hpp> #include <iostream> int main () { using namespace boost::numeric; using namespace std; ublas::vector<double> v; istringstream is("[3] (0.1, 2, 2)"); is >> v; cout << v << endl; } $./a.out [3](0.1,2,2) これが一番よさそうかなぁ。 matrixでできるかどうかはわからんけど
368 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:23:22 ] >>365 誰もクラス外部での話に限定してなかったけどな。
369 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 17:57:06 ] こんなの書いてみた template <class T> class Vectorizer { public: typedef typename boost::numeric::ublas::vector<T>::size_type size_type; explicit Vectorizer(size_type size) : cur_(0), vector_(size) {} template <class T2> Vectorizer& operator&(const T2& t) { vector_(cur_++) = t; return *this; } operator boost::numeric::ublas::vector<T>() const { return vector_; } private: size_type cur_; boost::numeric::ublas::vector<T> vector_; }; 使い方 ublas::matrix<int> m(Vectorizer<int>(3) & 0 & 1 & 2); // m = [3](0,1,2) コピーが発生するから効率は良くない・・・RVO的なものが効くかも知れないけど rvalue-referenceが欲しいところ
370 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:14:44 ] 最適化なら・・・最適化ならきっとなんとかしてくれる・・・!!
371 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 06:39:39 ] Visual Studio 2005 で IntelliSense がきかねぇよ・・・ しかも特定のライブラリ使ったときに顕著。 っていってたやつですが、using 使うと結構回避できるんですね。 boost::filesystem::path とか boost::spirit::file_iterator とか がそれなんですが、 using boost::filesystem::path するとか using filesystem=boost::filesystem すると IntelliSense が 効くみたい。
372 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 09:40:53 ] >>371 へぇーやってみよ
373 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 17:38:23 ] 二版出るって。タプルのために買おうかな。 ttp://www.kmonos.net/pub/BoostBook/
374 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 17:44:38 ] いつの間にか、circular_bufferが削除されてる……? ttp://svn.boost.org/trac/boost/changeset/4154 一体何があった?
375 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 21:07:13 ] >>373 おお。 あれから(初版)だいぶboostも進化したし、時代遅れになってたから そろそろ新しく書いてくれないかと思ってたところなんだ。 これは買おう。
376 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 21:14:27 ] boostそのものより、その実装に使ってる技術(とその理由)を解説したものってないのかなぁ shared_ptrのchecked_delete でさえ何でこんな事してんの?? とさんざん悩んだよ よく読むとドキュメントに書いてあったけど、書いてないものもあるし・・・
377 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 21:23:54 ] ああ、確かにそういう本欲しいなあ。 boostを題材にModern C++みたいなことをしてくれる本
378 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 23:03:17 ] そんなニッチな本売れねーよ
379 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 23:23:43 ] 俺も欲しいけどなあ、そんな本。 使い方の解説はWeb上にたくさんあるけど、仕組みまで解説したところはほぼ皆無だし。
380 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 23:44:10 ] C++の本自体もうあまりでねーだろうが・・・
381 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 23:44:38 ] >>380
382 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 23:47:18 ] 方向性がどんどんマニアックになってるからね。 素人向けしない仕様・思想がてんこもり
383 名前:デフォルトの名無しさん [2007/07/08(日) 04:21:56 ] いわゆる Smalltalk 系の OOP が好きな奴は C# とか Java とか Ruby でいいと思うよ。 C++ はどんどんマニアックになってほしい。
384 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 05:27:34 ] >>373 秀和の本って紙が厚くない? もちっと薄い紙にしてほしいけど単価高いのかなぁ。
385 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 06:48:21 ] 最近のコンパイライには tr1 名前空間以下にいろいろと 用意されているの?
386 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 07:00:42 ] お化けのqueue太郎が復刊されるらしいね
387 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 07:41:18 ] blogに内部構造の話書こうかと思ったけど、 解読している時間が少なくなってしまってもったいないんだよね。 持続してblogに技術話書き続けている人って本当にすごい。
388 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 07:50:52 ] >>387 自分のメモ程度の物でいいんじゃないの? そういうサイトも結構役に立つんだよね、暗中模索しちゃったときとか