[過去ログ]
Boostを語れゴラァ part4 (1001レス)
Boostを語れゴラァ part4 http://echo.5ch.net/test/read.cgi/tech/1175663346/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん [] 2007/04/04(水) 14:09:06 語って.はぁと part boost::mpl::int_<4> 過去スレ 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/ http://echo.5ch.net/test/read.cgi/tech/1175663346/1
902: デフォルトの名無しさん [sage] 2007/10/09(火) 03:34:13 >>901 どーだろ。でも、ライブラリ別に.soとか.aができるから、必要な奴だけリンクすることは可能。 だから部分ビルドできるかはあまり関係ない気もするんだが。 http://echo.5ch.net/test/read.cgi/tech/1175663346/902
903: デフォルトの名無しさん [sage] 2007/10/09(火) 04:30:10 ところで C++0x ではクロージャの機能は入るんですか? http://echo.5ch.net/test/read.cgi/tech/1175663346/903
904: 903 [sage] 2007/10/09(火) 04:31:35 すんません、ラムダ式が使えるんですね。 http://ja.wikipedia.org/wiki/C++0x#.E3.83.A9.E3.83.A0.E3.83.80.E9.96.A2.E6.95.B0.E3.81.A8.E3.83.A9.E3.83.A0.E3.83.80.E5.BC.8F http://echo.5ch.net/test/read.cgi/tech/1175663346/904
905: デフォルトの名無しさん [sage] 2007/10/09(火) 10:06:11 >>904 その Wikipedia の記事は、どういう新機能が会議で提案されてるかをかいてるので、どれが実際に C++0x に入りそうかは別個の話だよ。 http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2389.html をみたかぎりではλ式は間に合わなさそう。 これ以上はスレ違いなので C++0x スレで。 http://echo.5ch.net/test/read.cgi/tech/1175663346/905
906: デフォルトの名無しさん [sage] 2007/10/09(火) 10:09:41 と思って書き込んでからちゃんとよんでみたら、なんとかなりそうなのかな。よくわかりません。失礼しました http://echo.5ch.net/test/read.cgi/tech/1175663346/906
907: デフォルトの名無しさん [sage] 2007/10/09(火) 17:43:57 VC++2005EEの環境で>>878のコードをビルドしてみたんですが、リンクエラーが出てしまいます。 ランタイムライブラリをMT,MTd,MD,MDdのそれぞれ1回ずつ、バッチビルドでDebugとReleaseの両方をビルドしてみたんですが、どれもリンクエラーが出ました。 ↓はMDdでビルドしたときのエラーです。 ------ ビルド開始: プロジェクト: aa, 構成: Release Win32 ------ aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> > (class std::basic_ostream<char,struct std::char_traits<char> > &,char)" (__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z)" は未解決です。 aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) private: static char const * __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Nullstr(void)" (__imp_?_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ)" は未解決です。 aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) char const `private: static char const * __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Nullstr(void)'::`2'::_C" (__imp_?_C@?1??_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ@4DB)" は未解決です。 aa.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char> > (class std::basic_ostream<char,struct std::char_traits<char> > &,char const *)" (__imp_??$?6DU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z)" は未解決です。 http://echo.5ch.net/test/read.cgi/tech/1175663346/907
908: デフォルトの名無しさん [sage] 2007/10/09(火) 17:46:46 907の続き Debugのエラーはあまりにも長いので、とりあえずReleaseだけにしておきます。 どこか設定が間違っているのでしょうか? お願いします。 http://echo.5ch.net/test/read.cgi/tech/1175663346/908
909: デフォルトの名無しさん [sage] 2007/10/09(火) 18:13:43 >>907 2005、Boost1.34だが、 31->33行目はoperator()で書き直せば通ったけど? A[0][0]=1.0; -> A(0,0)=1.0; http://echo.5ch.net/test/read.cgi/tech/1175663346/909
910: 907 [sage] 2007/10/09(火) 19:49:15 >>909 A[0][0]=1.0; -> A(0,0)=1.0;に書き換えてみましたが、同じエラーが出てしまいます。 ちなみにboost1.34.0だと、 c:\library\boost_1_34_0\boost\numeric\ublas\detail\config.hpp(174) : fatal error C1189: #error : Your compiler is unsupported by this verions of uBLAS. Boost 1.32.0 includes uBLAS with support for many old compilers. というエラーが出てしまうので、1.32.0を入れました。 リンクエラーの意味がわからないので、どうすればいいのかさっぱり・・・。 http://echo.5ch.net/test/read.cgi/tech/1175663346/910
911: 909 [sage] 2007/10/09(火) 20:32:32 >>910 ランタイムライブラリは マルチスレッド(デバッグ)?DLL 使わないとエラー大量に出るよ。 lib,includeディレクトリには1つのバージョンのみのBoostだけ入れてよ。 Boost1.34.1 これでもできないならなんか環境ファイルが壊れてるのかもしれん。 http://echo.5ch.net/test/read.cgi/tech/1175663346/911
912: 907 [sage] 2007/10/09(火) 22:44:28 >>911 1.34.1入れてビルドしてみましたが、やはり>>910に書いたエラーが出てしまいます。 (このエラーが出るということは、コンパイラが1.34.1のublasに対応してないということですよね?) 1.32.0でビルドすれば、コンパイルは通るんですが、 どのラインタイムライブラリでやっても、>>907のリンクエラーかそれよりたくさんのリンクエラーが出てしまいます。 リンクエラーの内容がstd::basic_ostreamとかだったりするのは、 やはり環境変数がちゃんと設定できていないか、壊れているかそのあたりがあやしいですか? http://echo.5ch.net/test/read.cgi/tech/1175663346/912
913: デフォルトの名無しさん [sage] 2007/10/10(水) 01:38:03 boost::test::unit_test ってテスト終了時に メモリリークの検出までやってくれるんだね。 どういう方法でリークを検出しているんだろう。 もしかしてメモリアロケータを標準のものから 置き換えてなにかやってるのかな? http://echo.5ch.net/test/read.cgi/tech/1175663346/913
914: デフォルトの名無しさん [sage] 2007/10/10(水) 02:44:06 >>912 通りすがりだけど・・・ #include <ublasのヘッダもろもろ> int main() { // 何も書かない return 0; } でコンパイル通る? 経験則から言うとVC7以上であればublasのバージョンは問題ないと思う >>913 unit_testのメモリリーク検出良いよね うっかりポインタ操作をミスしていたのを見つけてくれたことがあるよ http://echo.5ch.net/test/read.cgi/tech/1175663346/914
915: 907 [sage] 2007/10/10(水) 04:01:05 >>914 ヘッダだけのコードを1.32.0でビルドしたら成功しました。(1.34.1は、やはり>>910のエラー) 1.34.1でビルドするとboost/numeric/ublas/detail/config.hppの // Version 6.0 and 7.0 #if BOOST_MSVC <= 1300 #define BOOST_UBLAS_UNSUPPORTED_COMPILER 1 #endif の条件に該当してそうです。 コメントアウトでいろいろコードを削って試してみたら、どうもstd::coutを使うとリンクエラーが出るっぽいです。 原因がスレ違いで申し訳ないです。 あとは自分でなんとかします。 レスくれた方々、ありがとうございました。 http://echo.5ch.net/test/read.cgi/tech/1175663346/915
916: デフォルトの名無しさん [sage] 2007/10/11(木) 02:58:54 unit_testの話題が出ているので...質問させてください 他のライブラリを使用したコードのテストをするため unit_testを利用しようとしたところ、リンカで次のエラーを得ました ***.lib(main.obj) : error LNK2019: 未解決の外部シンボル _MAIN__ が関数 _main で参照されました。 unit_testがmain関数を横取りしていることあたりが原因だとは思うのですが 何とか上手く回避できないものでしょうか? お心当たりのある方はご教示いただけると幸いです http://echo.5ch.net/test/read.cgi/tech/1175663346/916
917: デフォルトの名無しさん [sage] 2007/10/11(木) 03:31:31 unit_testを使わない boostなんて無理してまでも使うもんじゃない。 http://echo.5ch.net/test/read.cgi/tech/1175663346/917
918: デフォルトの名無しさん [sage] 2007/10/12(金) 07:06:33 お前ら、ステートマシンはどのライブラリを使っていますか? Cで書いた糞自作ライブラリから乗り換えようと思ってるんですが。 http://echo.5ch.net/test/read.cgi/tech/1175663346/918
919: デフォルトの名無しさん [sage] 2007/10/12(金) 07:29:57 糞自作ライブラリから乗り換えようと思った理由は? http://echo.5ch.net/test/read.cgi/tech/1175663346/919
920: デフォルトの名無しさん [sage] 2007/10/12(金) 09:11:09 ttp://www.boost.org/more/formal_review_schedule.html Boost.FSM 10/21〜 http://echo.5ch.net/test/read.cgi/tech/1175663346/920
921: デフォルトの名無しさん [sage] 2007/10/12(金) 09:15:29 FSMは昔GPGに載ってたAI用のやつをいじって使ってる http://echo.5ch.net/test/read.cgi/tech/1175663346/921
922: デフォルトの名無しさん [sage] 2007/10/12(金) 09:32:38 >>918 Cベースで、状態遷移時のコールバック関数へのポインタが むき出しだったり、いやなことが多いのと、あのころの 自分を忘れたかったから。 >>920 お、レビューが始まるんですか。 ちょっと前に話題が出てた Property も? と思ったらこれは Property Map か。。 http://www.boost.org/libs/statechart/doc/index.html これと比べてどちらを使うべきかについてのアドバイスのような ページがどっかにあったんだけど、以前読んだ時に結局 判断がつかなくてずっと自作ライブラリ使ってたんだけど、 もう嫌になったから・・・ http://echo.5ch.net/test/read.cgi/tech/1175663346/922
923: デフォルトの名無しさん [sage] 2007/10/12(金) 20:21:25 typedef使えばいいような http://echo.5ch.net/test/read.cgi/tech/1175663346/923
924: デフォルトの名無しさん [sage] 2007/10/13(土) 14:37:13 テキストエディタ使ってコマンドラインからコンパイルしようとすると boost関連のincludeが見つからないと怒られたので vsvars32.batにboostのincludeとlibパスを追加してみたら 今度はfatal error LNK1120: 外部参照 1 が未解決です。と出る どうしたら良いのでしょうか? http://echo.5ch.net/test/read.cgi/tech/1175663346/924
925: 924 [sage] 2007/10/13(土) 14:42:35 書き忘れ VC2005EEです。。。 http://echo.5ch.net/test/read.cgi/tech/1175663346/925
926: デフォルトの名無しさん [sage] 2007/10/13(土) 14:56:29 具体的に何が見付かりませんと表示されるだろう。 そっち見ないとわからない。たぶんスレ違いの気がするけれど。 http://echo.5ch.net/test/read.cgi/tech/1175663346/926
927: 924 [sage] 2007/10/13(土) 15:02:11 error LNK2019: 未解決の外部シンボル "void __cdecl boost::throw_exception(class std::exception const &)" (?throw_exception@boost@@YAXABVexception@std@@@Z) が関数 " int __cdecl boost::lexical_cast<int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > (class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$lexical_cast@HV?$basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@@boost@@YAHABV?$basic_string@DU?$char_traits@D@std@@ V?$allocator@D@2@@std@@@Z) で参照されました。 boosttest.exe : fatal error LNK1120: 外部参照 1 が未解決です。 長いんでカットしてました スレ違いならごめんなさい http://echo.5ch.net/test/read.cgi/tech/1175663346/927
928: デフォルトの名無しさん [sage] 2007/10/14(日) 19:34:47 うちはうまくうごいとるよ http://echo.5ch.net/test/read.cgi/tech/1175663346/928
929: デフォルトの名無しさん [sage] 2007/10/14(日) 20:12:48 boostでまだ使えないvc向けのものがあるね http://echo.5ch.net/test/read.cgi/tech/1175663346/929
930: デフォルトの名無しさん [sage] 2007/10/14(日) 23:32:14 >>927 VC のオプションの「C++ の例外を有効にする」がいいえになってるか 明示的に BOOST_NO_EXCEPTIONS を定義したのでは? http://echo.5ch.net/test/read.cgi/tech/1175663346/930
931: デフォルトの名無しさん [sage] 2007/10/15(月) 15:02:33 YAMLの実装はありますか? http://echo.5ch.net/test/read.cgi/tech/1175663346/931
932: 924 [sage] 2007/10/15(月) 18:11:46 >>930 遅レスですいません ビンゴでした /EHsc オプションつけたらコンパイル通った ありがとうございました でも、なにもした覚えはないんだけどな・・・ http://echo.5ch.net/test/read.cgi/tech/1175663346/932
933: デフォルトの名無しさん [sage] 2007/10/15(月) 18:15:01 実行時型情報を使うのってあんまり気持ち良くないなぁ。 おまえらは全然抵抗ありませんか? 型に関するあれやこれやはコンパイル時に解決 されているのがC++のいいところだと思ってたんだけど。 あと、これは単なるコーディングスタイルなんだけど、 メンバ変数をアクセスするときに this-> を強制したいなぁ。 あくまで自分が間違えてメンバ変数と同じ名前のローカル変数を 作ってしまうことがあるバカ者だからなんだけどね。 まぁこれは命名規則をきっちり決めておけばいいんだろうけど。 http://echo.5ch.net/test/read.cgi/tech/1175663346/933
934: デフォルトの名無しさん [sage] 2007/10/15(月) 18:56:28 boostと何の関係が? http://echo.5ch.net/test/read.cgi/tech/1175663346/934
935: デフォルトの名無しさん [sage] 2007/10/15(月) 19:11:01 RTTIをオフにすると、Boost のなかで使えない ライブラリが出てくる。どのライブラリが RTTIを要求するか、例外のサポートを要求するかについての リストがあれば便利なケースもあるんじゃないかなぁ、とか思いながら。 さすがに組み込みで Boost の全ライブラリのサポートを 要求する人はいないと思うが、どれが使えてどれが使えないか わかればいいなぁ。 http://echo.5ch.net/test/read.cgi/tech/1175663346/935
936: デフォルトの名無しさん [sage] 2007/10/15(月) 21:50:35 独り言うぜぇ http://echo.5ch.net/test/read.cgi/tech/1175663346/936
937: デフォルトの名無しさん [sage] 2007/10/15(月) 22:01:11 つうか、メンバ変数は大抵 xxx_ とか m_xxx でぶつからないだろ http://echo.5ch.net/test/read.cgi/tech/1175663346/937
938: デフォルトの名無しさん [sage] 2007/10/15(月) 22:56:57 インテリセンスで使いやすいように _xxx じゃ問題ある? http://echo.5ch.net/test/read.cgi/tech/1175663346/938
939: デフォルトの名無しさん [sage] 2007/10/15(月) 23:08:43 >>938 頭にアンダースコアの識別子は標準ライブラリやコンパイラのベンダのためにあるから使っちゃ駄目。 http://echo.5ch.net/test/read.cgi/tech/1175663346/939
940: デフォルトの名無しさん [sage] 2007/10/15(月) 23:12:26 >>939 はい、間違いです。規格書読み直してくださいね。 http://echo.5ch.net/test/read.cgi/tech/1175663346/940
941: デフォルトの名無しさん [sage] 2007/10/16(火) 00:00:50 >17.4.3.1.2 Global names >Certain sets of names and function signatures are always reserved to the implementation: >Each name that contains a double underscore (_ _) or begins with an underscore followed by an uppercase >letter (2.11) is reserved to the implementation for any use. >Each name that begins with an underscore is reserved to the implementation for use as a name in the >global namespace 大文字でないので、メンバに使うのはおkってことか? なんにせよ俺は使いたくはないな。 http://echo.5ch.net/test/read.cgi/tech/1175663346/941
942: デフォルトの名無しさん [sage] 2007/10/16(火) 00:51:09 マクロとぶつかったりするととても悲しいのでやめた方が無難 http://echo.5ch.net/test/read.cgi/tech/1175663346/942
943: デフォルトの名無しさん [sage] 2007/10/16(火) 08:19:50 バカかお前。ぶつからねーって回転だろ http://echo.5ch.net/test/read.cgi/tech/1175663346/943
944: デフォルトの名無しさん [sage] 2007/10/16(火) 19:38:49 独自のテンプレートライブラリを作るときに boost::mplを使うときに一々ヘッダでboost::mpl::bindとか完全修飾で書くとみにくいので namespace mpl = boost::mplとかusingを使いたいんですが namespace my_lib { namespace hoge_impl { } http://echo.5ch.net/test/read.cgi/tech/1175663346/944
945: 944 [sage] 2007/10/16(火) 19:46:07 namespace my_lib { namespace hogee_impl { // *この名前空間でusingやnamespace hoge = foo::bar;を使う tempalte<class Hoge, class Huga, class Foo> struct impl { typedef ... type; }; } // namespace hoge_impl tempalte<class Hoge, class Huga, class Foo> struct hogee { typedef typename hogee_impl<Hoge,Huga,Foo>::type type; }; } // namespace my_lib というようにしてhogeeをmy_lib::hogeeとして使えば問題ありませんか? ADLとかまだよくわからないのでちょっと心配です http://echo.5ch.net/test/read.cgi/tech/1175663346/945
946: デフォルトの名無しさん [sage] 2007/10/16(火) 21:56:08 それってBoostと関係あるのか? http://echo.5ch.net/test/read.cgi/tech/1175663346/946
947: デフォルトの名無しさん [sage] 2007/10/16(火) 23:37:09 >>945 どんなことが起こるのを心配してるの? 見た感じ、好きにすれば、って感じなんだけど。 http://echo.5ch.net/test/read.cgi/tech/1175663346/947
948: デフォルトの名無しさん [sage] 2007/10/17(水) 21:01:27 struct A{ long a; }; struct B{ A inner; explicit B(long n){ inner.a = n;} }; struct GetB_ : public std::unary_function<B&, A&>{ A& operator()(B& element) const{ return element.inner;} }; typedef std::vector<B> vectorB; typedef boost::transform_iterator<GetB_, vectorB::iterator> testIterator; int main(){ vectorB v; for(int i=0; i<100; ++i) v.push_back(B(i)); testIterator p2(v.begin(), GetB_()); cout << typeid(p2[0]).name() << endl; //cout << p2[0].a << endl;←コンパイルエラー return 0; } transform_iteratorについての質問なんですが p2[0]の型がclass boost::detail::operator_brackets_proxy<class boost::transform_iterator<class GetB_,class std::_Vector_iterator<struct B,class std::allocator<struct B> >,struct boost::use_default,struct boost::use_default> > ってなってて、[]演算子だけ変です。これでは使い物になりません。 iterator_facade.hpp見ると、 // A proxy return type for operator[], needed to deal with // iterators that may invalidate referents upon destruction. // Consider the temporary iterator in *(a + n) と書いてありますが、いまいちわかりません。 自分でイテレータ作るしかないんでしょうか…? http://echo.5ch.net/test/read.cgi/tech/1175663346/948
949: デフォルトの名無しさん [sage] 2007/10/17(水) 23:03:33 >948 都合により直接メンバアクセスすることはできない。ただし、A& に変換することはできる。 ということで、不格好だけど、static_cast<A&)(p2[0]).a みたいにするか、long& getA(A& a) { return a.a; } を作って getA(p2[0]) みたいにする必要がある。 コメントの部分はこういうことだと思う。 p2[n] が A& を直接返していたとする。 この時返ってくる A& は *(p2 + n) の結果なんだけど、 p2 + n は iterator の一時オブジェクトで既に破棄されていることになる。 iterator によっては自分が破棄された場合に、指し先(この場合返ってきた A&)も無効化するものがあるかもしれない。 ということで、p2 + n に対応する iterator が存在することを保証するために proxy オブジェクトが使用されている。 http://echo.5ch.net/test/read.cgi/tech/1175663346/949
950: デフォルトの名無しさん [sage] 2007/10/18(木) 01:17:26 >>949 あー、なるほど。 分かりやすい解説ありがとうございます。 確かに、さっきのp2で cout << (*(p2 + 5)).a << endl; って添え字演算子と同じことをやると、Visual Studio がアサート失敗を出す。 vectorのイテレータが破棄されちゃうのね…。 >>948は例のためにvector使ったんで、 実は本当にtransform_iterator使いたいのはポインタだからこの問題は起こらない…。 transform_iteratorを継承してoperator[]を隠蔽してみます。 http://echo.5ch.net/test/read.cgi/tech/1175663346/950
951: デフォルトの名無しさん [sage] 2007/10/18(木) 02:25:28 >>950 次スレ立てよろしく http://echo.5ch.net/test/read.cgi/tech/1175663346/951
952: デフォルトの名無しさん [sage] 2007/10/18(木) 07:59:28 ほーい http://echo.5ch.net/test/read.cgi/tech/1175663346/952
953: デフォルトの名無しさん [sage] 2007/10/18(木) 09:13:20 >>950 iteratorは継承して作ってはいけない http://echo.5ch.net/test/read.cgi/tech/1175663346/953
954: デフォルトの名無しさん [sage] 2007/10/18(木) 13:31:10 書くの面倒だけど書かないとね。 iterater_facadeとか使って。 http://echo.5ch.net/test/read.cgi/tech/1175663346/954
955: デフォルトの名無しさん [sage] 2007/10/18(木) 14:02:59 つーかそれ無しだと書く気が起きない http://echo.5ch.net/test/read.cgi/tech/1175663346/955
956: デフォルトの名無しさん [sage] 2007/10/18(木) 17:22:44 >>781 int | ∞ を表現するのに便利そう。> boost::optional http://echo.5ch.net/test/read.cgi/tech/1175663346/956
957: デフォルトの名無しさん [sage] 2007/10/18(木) 17:41:53 次スレ Boostを語れゴラァ part5 http://pc11.2ch.net/test/read.cgi/tech/1192662575/ 立てたはいいけどここに報告するの忘れてたよ http://echo.5ch.net/test/read.cgi/tech/1175663346/957
958: デフォルトの名無しさん [sage] 2007/10/19(金) 02:11:15 > boost::optional 通常処理→戻り値数値 通常処理でない→戻り値NULL という関数を試作したらNULL値が0として振る舞って失敗した事があった そのとき代替で使ってみた。良い方法かどうかは知らないけど http://echo.5ch.net/test/read.cgi/tech/1175663346/958
959: デフォルトの名無しさん [sage] 2007/10/19(金) 07:21:25 ワラ http://echo.5ch.net/test/read.cgi/tech/1175663346/959
960: デフォルトの名無しさん [sage] 2007/10/19(金) 12:50:05 まさかこういうことをしたのか・・・。 int hoge() { return NULL; } http://echo.5ch.net/test/read.cgi/tech/1175663346/960
961: デフォルトの名無しさん [sage] 2007/10/19(金) 12:53:05 そのレベルでBoost使ってたらいろいろと苦労しそうだね。 http://echo.5ch.net/test/read.cgi/tech/1175663346/961
962: デフォルトの名無しさん [sage] 2007/10/19(金) 13:50:12 Win32のことかー http://echo.5ch.net/test/read.cgi/tech/1175663346/962
963: デフォルトの名無しさん [sage] 2007/10/19(金) 20:01:08 >>958 例外使うところなのでは? …それがいやなら結果入れる変数を参照渡し… http://echo.5ch.net/test/read.cgi/tech/1175663346/963
964: デフォルトの名無しさん [sage] 2007/10/19(金) 20:03:24 結果変数を渡すくらいならoptional使えばいいだろ http://echo.5ch.net/test/read.cgi/tech/1175663346/964
965: デフォルトの名無しさん [sage] 2007/10/20(土) 10:06:12 >>963 頭固いねー http://echo.5ch.net/test/read.cgi/tech/1175663346/965
966: デフォルトの名無しさん [] 2007/10/20(土) 11:39:48 なにいってるんだ、NULL渡したいならnullptrだろ? http://echo.5ch.net/test/read.cgi/tech/1175663346/966
967: デフォルトの名無しさん [sage] 2007/10/20(土) 11:41:52 optionalあるんだからoptional使えばいいだろ http://echo.5ch.net/test/read.cgi/tech/1175663346/967
968: デフォルトの名無しさん [sage] 2007/10/20(土) 12:58:50 >>966 別に NULL を返したいんじゃなくて、 エラーが識別できれば何でもいいだろう。 まさに optional の適用事例。 http://echo.5ch.net/test/read.cgi/tech/1175663346/968
969: デフォルトの名無しさん [sage] 2007/10/20(土) 13:28:29 boost.optionalごときにカリカリしすぎ http://echo.5ch.net/test/read.cgi/tech/1175663346/969
970: デフォルトの名無しさん [sage] 2007/10/20(土) 14:22:37 tupleでいいと思うけど人気無いの? 単にエラーコードと結果両方返したいだけなら tupleどころかstd::pairでもいいと思うけど。 http://echo.5ch.net/test/read.cgi/tech/1175663346/970
971: デフォルトの名無しさん [sage] 2007/10/20(土) 15:14:09 >>970 optionalの方が良いから。 http://echo.5ch.net/test/read.cgi/tech/1175663346/971
972: デフォルトの名無しさん [sage] 2007/10/20(土) 18:26:04 >>970 それじゃぁ、エラーコードを不用意に無視することができてしまうだろ。 エラーコードを無視させにくくするためには optional みたいな 仕組みがいい。例外もエラーを無視させない仕組みなので、 例外を使ってもいいとは思うけど。故意に無視することができるのは どちらも同じ。 optional を使ってエラー状態を通知する方法と 例外を使ってエラーの発生を通知する方法の違いは 直情より上の呼び出し元までエラー状態が伝搬するか否か。 http://echo.5ch.net/test/read.cgi/tech/1175663346/972
973: デフォルトの名無しさん [sage] 2007/10/20(土) 18:26:57 >>970 俺もそう思う std::map::insert が pair 返すし tuple は tr1 にあるけど、optional は無いし http://echo.5ch.net/test/read.cgi/tech/1175663346/973
974: デフォルトの名無しさん [sage] 2007/10/20(土) 18:53:29 DefaultConstructibleでなくても返せるようにするために optionalは存在するんだ もっと勉強しろこのバカチンどもが! http://echo.5ch.net/test/read.cgi/tech/1175663346/974
975: デフォルトの名無しさん [sage] 2007/10/20(土) 20:42:19 全然関係ないけど 動的メモリがあまり自由でない環境だと、DefaultConstructibleでない 値ベースの型って、なにげに使い勝手が悪かったりするような http://echo.5ch.net/test/read.cgi/tech/1175663346/975
976: デフォルトの名無しさん [sage] 2007/10/21(日) 00:38:49 >>974 ごめんね、ママ http://echo.5ch.net/test/read.cgi/tech/1175663346/976
977: デフォルトの名無しさん [sage] 2007/10/21(日) 00:39:51 >>973 > tuple は tr1 にあるけど、optional は無いし はい、スレ否定、来ました。 http://echo.5ch.net/test/read.cgi/tech/1175663346/977
978: デフォルトの名無しさん [sage] 2007/10/21(日) 12:24:18 >>975 はいはい boost::value_initialized http://echo.5ch.net/test/read.cgi/tech/1175663346/978
979: デフォルトの名無しさん [sage] 2007/10/21(日) 13:38:11 >978 value_initialized ってそういうもんだったっけ?と思ったらやっぱり DefaultConstuctible かどうかを解決なんてしないじゃん。 名前に惑わされてない? http://echo.5ch.net/test/read.cgi/tech/1175663346/979
980: デフォルトの名無しさん [sage] 2007/10/21(日) 15:48:01 auto_ptr + aligned_storage = optional http://echo.5ch.net/test/read.cgi/tech/1175663346/980
981: デフォルトの名無しさん [] 2007/10/21(日) 17:10:15 >>980 aligned_storageの説明ってどっかにあります? http://echo.5ch.net/test/read.cgi/tech/1175663346/981
982: 978 [sage] 2007/10/21(日) 18:17:30 >>979 すいません。ご指摘のとおり。 default construtibleでない=組み込み型が初期値で初期化されない、 と勘違いしてました。 http://echo.5ch.net/test/read.cgi/tech/1175663346/982
983: デフォルトの名無しさん [sage] 2007/10/21(日) 18:48:46 >>981 説明っていっても、指定サイズの char バッファを指定アライメントに置くだけだよ。 BoostにもTR1にも入ってる。 今の実装だと type_with_alignment<> 経由で求まる型を使ってるけど、 C++0x では alignof/alignas あたりを使うようになると思われる。 http://echo.5ch.net/test/read.cgi/tech/1175663346/983
984: デフォルトの名無しさん [sage] 2007/10/21(日) 21:25:27 組み込み分野で便利そうだね 今まではマクロ使ってたけど http://echo.5ch.net/test/read.cgi/tech/1175663346/984
985: デフォルトの名無しさん [sage] 2007/10/23(火) 16:33:24 シンビアンとか、Mac OS Xのドライバとか、 組み込みっぽい用途に結構使われてるからね。 http://echo.5ch.net/test/read.cgi/tech/1175663346/985
986: デフォルトの名無しさん [sage] 2007/10/24(水) 13:42:52 >>957 乙 http://echo.5ch.net/test/read.cgi/tech/1175663346/986
987: デフォルトの名無しさん [sage] 2007/10/24(水) 23:57:28 Boostを普通にプロジェクトで使ってる? http://echo.5ch.net/test/read.cgi/tech/1175663346/987
988: デフォルトの名無しさん [sage] 2007/10/25(木) 02:23:16 >>987 全部じゃないけど使っているクラスもある。 たとえば boost::shared_ptr とか boost::auto_array とか。 http://echo.5ch.net/test/read.cgi/tech/1175663346/988
989: デフォルトの名無しさん [sage] 2007/10/25(木) 03:54:30 ああ、C++0x の auto がまちどおしい。 型名が長くなりすぎ。推論してくれ・・ http://echo.5ch.net/test/read.cgi/tech/1175663346/989
990: デフォルトの名無しさん [sage] 2007/10/25(木) 09:53:14 これ以上コンパイル時間が長くなるのはイヤです http://echo.5ch.net/test/read.cgi/tech/1175663346/990
991: デフォルトの名無しさん [sage] 2007/10/25(木) 10:01:22 そこで8コア並列コンパイル Linuxのカーネルのビルドもカップ麺ができるまでに終っちゃいます http://echo.5ch.net/test/read.cgi/tech/1175663346/991
992: デフォルトの名無しさん [sage] 2007/10/25(木) 17:41:23 VS2005 は、何コアまで対応しているんですか?(コンパイル) http://echo.5ch.net/test/read.cgi/tech/1175663346/992
993: デフォルトの名無しさん [sage] 2007/10/25(木) 19:23:57 >>992 並行してビルドできるプロジェクトは任意に指定できるんじゃね? http://echo.5ch.net/test/read.cgi/tech/1175663346/993
994: デフォルトの名無しさん [sage] 2007/10/25(木) 21:29:02 つーか、型推論で速度が遅くはならねぇだろ。 http://echo.5ch.net/test/read.cgi/tech/1175663346/994
995: デフォルトの名無しさん [sage] 2007/10/25(木) 22:29:18 いやいやそんな事は無い http://echo.5ch.net/test/read.cgi/tech/1175663346/995
996: デフォルトの名無しさん [sage] 2007/10/25(木) 22:35:44 >>994 ?コンパイル速度には影響しそうだけど http://echo.5ch.net/test/read.cgi/tech/1175663346/996
997: デフォルトの名無しさん [sage] 2007/10/25(木) 23:27:55 >>996 しっかりしろ。sizeofがある時点で、typeofのようなものは簡単に実装できるなんてわかりそうなもんだろ。 そして、sizeofでコンパイル速度が落ちるか? http://echo.5ch.net/test/read.cgi/tech/1175663346/997
998: デフォルトの名無しさん [sage] 2007/10/25(木) 23:33:09 auto a = hoge(); これでaの型を推論するのに時間がかかるわけがない。 これでコンパイル速度が遅くなるんなら、下の簡単なテンプレート関数でも遅くなるだろ。 template<class T> void foo(T t){} foo(hoge()); http://echo.5ch.net/test/read.cgi/tech/1175663346/998
999: デフォルトの名無しさん [sage] 2007/10/26(金) 07:32:05 ? http://echo.5ch.net/test/read.cgi/tech/1175663346/999
1000: デフォルトの名無しさん [sage] 2007/10/26(金) 07:32:50 (・∀・) 1000 ! 次スレ Boostを語れゴラァ part5 http://pc11.2ch.net/test/read.cgi/tech/1192662575/ http://echo.5ch.net/test/read.cgi/tech/1175663346/1000
1001: 1001 [] Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 http://echo.5ch.net/test/read.cgi/tech/1175663346/1001
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s