1 名前:デフォルトの名無しさん [2006/09/23(土) 15:00:11 ] 語って.はぁと part boost::mpl::int_<3> 前スレ 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 [2006/09/23(土) 15:01:35 ] ■関連書籍■ 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/ ■関連スレ■ C++相談室 part46 pc8.2ch.net/test/read.cgi/tech/1136690107/ 【C++】STL(Standard Template Library)相談室 4 pc8.2ch.net/test/read.cgi/tech/1130680264/ BOOTSを語れゴラァ part2 pc8.2ch.net/test/read.cgi/tech/1139266461/
3 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 15:03:31 ] 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 [2006/09/23(土) 15:04:37 ] > 1.34 では Pointer Container のシリアライザも用意されるみたいだね boost.cvs.sourceforge.net/boost/boost/boost/ptr_container/ptr_vector.hpp?view=log Unresolved Issues: CVS-RC_1_34_0 engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/issues_release_.html
5 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 15:19:51 ] >>4 のリンクがうまくはれていないので修正。 Unresolved Issues: CVS-RC_1_34_0 engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/issues_release_.html >>1 乙
6 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 20:09:13 ] 乙 ところで前スレはどういう流れだったっけ
7 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 20:19:46 ] コレ、まだ残ってたのかw↓ BOOTSを語れゴラァ part2 pc8.2ch.net/test/read.cgi/tech/1139266461/
8 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 20:43:09 ] >>7 そこはどう見ても履き物についてのスレだw
9 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 20:59:44 ] 板違いスレか、服飾系板に強引に立てたネタスレかと思ったら素で間違えてんのかw
10 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 21:39:37 ] ずいぶんと懐かしいな
11 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 22:48:14 ] >>7 ホンマにブーツの話してるしw
12 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 00:08:55 ] >>11 間違いは間違いとして、その後で内容のほうを合わせようという建設的な態度は評価できるな
13 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 00:23:34 ] そういえば、自らの国家や民族に固執する(ry じゃなくて、C#スレを立てようとした 1 が スレタイに半角の # が使えないことを知らなくてスレタイから # が消えて、 そのまんま C 言語のスレになったってのもあったな。
14 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 00:49:11 ] 1のリンク先のレッツブーストつぶれちょる? version134ていつでるんでしょうか、10月中にはでます?
15 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 01:31:11 ] >>14 いや、ちゃんとあるよ。 >>1 のURLから最後の空白を削ってみろ
16 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 05:09:00 ] うむむ、なぜか空白が追加されてるね、末尾に。 >>1 のリンクって。
17 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 06:18:04 ] boost::filesystem の directory_iterator って、 いわゆるコンテナクラスライブラリのイテレータとは書式が違うね。
18 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 09:10:31 ] 違わない。
19 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 09:40:14 ] あ、ごめん、begin() とか end() とか無いね、 って言う意味だった。
20 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 09:45:17 ] それはコンテナの方の特徴だな。 begin()/end()を持っている方が少数派。 例えばiostream。
21 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 17:51:52 ] Visutl Studio 2005 Express Edition で Boost をインストールしようとしたのですが ワーニングがいっぱいでて1時間以上まって エラーも5個でて、 regexp の例題をコンパイルしてもエラーでだめでした。(エピステーメさんのHPの) Boost を 2005 EE にインストールする方法を書いてあるHPがありましたが教えてください。 よろしくおねがします。
22 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 18:03:18 ] 有ったのか無かったのかどっちやねん
23 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 19:49:32 ] boost_1_33_1 は変な文字コードがまざってるから、VC++ 2005 だと警告が出ますね。 該当コメントを削除しちゃえば出なくなりますよ。 Copyright 宣言もあるから、削除したのを再配布するのはよくないね。 boost_1_33_1/boost/filesystem/exception.hpp boost_1_33_1/boost/filesystem/directory.hpp boost_1_33_1/libs/filesystem/src/exception.cpp boost_1_33_1/libs/filesystem/src/operations_posix_windows.cpp (c) と、Dietmar なんちゃらって人の名前。 boost_1_33_1/boost/lexical_cast.hpp boost_1_33_1/boost/type_traits/is_base_and_derived.hpp Terje なんちゃらって人の名前。 boost_1_33_1/libs/regex/src/regex_traits_defaults.cpp キャラクタテーブルのコメント。いぱーい。
24 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 20:23:11 ] >>23 Unicode で保存し直すとかでも回避できたっけ?
25 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 20:34:16 ] >>21 何をして何のエラーが出たのか書いてよ。 PlatformSDK Build Environment vcvars32.bat boost/regex/user.hpp ->例題によってはこれの設定必要 bjam の順で自分はやってるけど?
26 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 22:09:10 ] なんで lexical_cast<std::wstring> はあるのに、 lexical_cast<std::string> は無いんだろう。
27 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 23:07:45 ] 使えるけど... #include <iostream> #include <string> #include <boost/lexical_cast.hpp> int main() { std::string s1 = boost::lexical_cast<std::string>(1234); std::string s2 = boost::lexical_cast<std::string>(3.14); std::cout << s1 << std::endl << s2 << std::endl; return 0; }
28 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 10:33:45 ] auto_ptr から shared_ptr に所有権を移しかえられますか? boost::shared_ptr<T> sp; std::auto_ptr<T> ap(new T); sp = ap; この後、sp を使って当該オブジェクトを弄り回したいんですが、 ap はきちんと所有権を失っていてくれることが保証されていますか? つまり ap も所有権を主張していて、スコープを外れた途端に いきなりデストラクタを呼び出しに行ったりしませんか?
29 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 10:51:52 ] >>28 ttp://boost.cppll.jp/HEAD/libs/smart_ptr/shared_ptr.htm
30 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 10:54:55 ] 気になるなら明示的にrelease()すればいいんじゃね
31 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 10:57:53 ] >>28 何故自分で試さない?
32 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 11:37:05 ] >>29 リンク先の「タイプ量(コード量)を減らそうとして...」ての知らなかたよ。
33 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 12:26:03 ] eps_p(P)でPにセマンティックアクション付けられないの?
34 名前:デフォルトの名無しさん mailto: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.. ってして作業内容把握できるようにすると判りやすいかも
35 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 21:33:46 ] >>33 eps_p(p) >> p[f] ではだめなのか?
36 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 23:04:56 ] >>35 ちょっと量が多すぎてvectorにpush_backじゃ厳しいから まずPにマッチする行数をincrement_aでカウントした後一気にメモリー確保して、 その後でdetailed_Pで実際にパースしようとしてるんだわ。 そうしたらマッチしてるのにセマンティックアクションが動かなくてさ。 うまくいかないからとりあえず普通にPでマッチさせて、そこからもう一回 bindでparse呼んでるんだけど、これが正しい解なのか悩んでる。
37 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 02:19:48 ] ドキュメントに書いてあるんだが。 www.boost.org/libs/spirit/doc/epsilon.html
38 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 00:11:40 ] |ω・) 1_34は〜まだかな〜
39 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 20:11:48 ] 1.34はコードの量が倍くらいになるんじゃないか
40 名前:デフォルトの名無しさん [2006/09/30(土) 22:40:11 ] bcc5.5 日本語でboost のビルドは 無理なんでよね?^^;
41 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 23:45:34 ] 日本語でビルドってどういう意味だ?
42 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 23:48:41 ] ライブラリの構築、ぐらいでいいんじゃね?
43 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 00:16:46 ] 「構築する」
44 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 00:32:57 ] んじゃコンパイルは
45 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 00:45:35 ] >>44 元来の英語の意味は「蒐集する、編纂する」というニュアンス。 コンピュータ用語としては「コンパイル」が広く普及しているので、そのままで桶。
46 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 00:50:42 ] コンパイルは、過労働で疲労困憊する、ってことかと思ってました。
47 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 00:51:40 ] あれだろ。サイレントメビウス書いた人の漫画
48 名前:デフォルトの名無しさん [2006/10/01(日) 01:17:53 ] 関数を書くときに OptionalとExpressionTemplate使って辺値を 数式と計算に分離できるようにできるかな? できたら数式のままいろんな計算できそうなんだけども。
49 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 01:20:59 ] のーみそこねこね
50 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 01:52:05 ] 最近ハートが付いて復活したな…
51 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 06:59:28 ] 1.34 全裸正座待ち中
52 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 08:43:49 ] CVSで最新取って来ればいいのに
53 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 09:28:27 ] プレイだから
54 名前:デフォルトの名無しさん [2006/10/01(日) 16:40:13 ] 日本人は低能知能なのには呆れますね。 私達中華人民はあなたたちの掲示板を拝見して笑ってみてますよ。ではありがとうございました。
55 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 17:01:27 ] ありがとう!
56 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 17:18:50 ] 礼儀正しい方だね
57 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 00:49:04 ] こころゆくまで拝見してください
58 名前:拝して見るのはあくまで自分な mailto:sage [2006/10/02(月) 12:19:15 ] >>57 日本語でどうぞ。
59 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 12:22:28 ] >54を見れ
60 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 12:58:34 ] 自敬表現も日本語だろ。
61 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 19:30:53 ] 中華人民は煽りも丁寧だな。さすが中華
62 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 23:41:17 ] うむ、我々もこういった物腰を見習わなければならんね。
63 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 00:51:37 ] 他のスレでもやってたけど、ここでも塩撒いとこうぜ。 六四事件 天安門
64 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 06:57:16 ] 台湾独立万歳!
65 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 12:38:27 ] まあ俺らがこのスレでやってることは彼らが2000年位前にすでに通った道だからな
66 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 12:43:21 ] >>65 そうそう。今では見る影もないけどね。>彼ら
67 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 15:53:11 ] じゃあ、俺たちもいずれ・・・
68 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 01:51:46 ] boost::operators見てこんな書き方が出来るの初めて知ったよ… struct foo { friend bool operator+(const int &lhs, const foo &rhs) { //... }; };
69 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:01:04 ] 割と基本的なことだな
70 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:01:39 ] Barton-Nackman Trick その本来の目的で使われることが無くなった、 興味深いworkaroundのコード。 テンプレート関数のオーバーロードができなかった時代に考案されたという……。 ADLの助けを借りずしてその関数を呼び出すことは不可能とされている。 民明書房「黎明期の貧弱なコンパイラとその制約」より
71 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 04:05:12 ] wserializationって、もしかしてまだ準備中? Boostを導入しようと思ったきっかけが シリアライズが楽にできそう、なんで、いきなり挫折しそう
72 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 23:41:59 ] 特に問題はないと思うが。 ただ大域locale(std::locale::global)の設定をしないとうまくいかない場合があるはず。
73 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 19:16:27 ] >>72 よかった、頑張ってみます さんくす
74 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 00:04:36 ] boost::filesystem::wpath 1.34 わくわく
75 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 09:41:46 ] てか、まだ 1.34 のレグレッションテストぜんぜん通ってないよ。
76 名前:デフォルトの名無しさん [2006/10/10(火) 20:07:44 ] vc8 + STLport5.0.2 + Boost1.33.1の組み合わせを実行している人っていますか?
77 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 22:07:18 ] 残念。 俺はvc8 + STLport5.1.0 + Boost1.33.1だ。
78 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 23:31:01 ] 1.34て今年中には出るのか!?
79 名前:76 [2006/10/11(水) 12:53:48 ] >77さん よろしければ その時のBOOSTのインストール方法をお教えいただけますか?
80 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 19:00:27 ] >>68 というか、「出来ないんじゃないか」と考える理由の方がわからんが?
81 名前:73 mailto:sage [2006/10/11(水) 20:35:01 ] あれから、ワイド文字を使わないシリアライズはできるようになりました しかし、wchar_t文字列のシリアライズコードを書いてみたのですが動作しません コードは25行なんですが、コードに関する質問は 質問スレのほうに書いたほうがよいでしょうか
82 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 20:37:58 ] ここでしなかったらスレが無駄過ぎる
83 名前:73 mailto:sage [2006/10/11(水) 20:47:31 ] そうですね、では 現在、コンパイルすると次のエラーがでます C2027: 認識できない型 'boost::STATIC_ASSERTION_FAILURE<x>' が使われています ↑コンパイル時の展開関係などがわかるようなデバッガがほしい・・ 以下コード。 #include <tchar.h> #include <locale> #include <iostream> //#include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_woarchive.hpp> //#define BOOST_LIB_NAME boost_serialization #define BOOST_LIB_NAME boost_wserialization #include <boost/config/auto_link.hpp> class test{ wchar_t* str; template <class Archive> void serialize(Archive& ar, const unsigned int version){ ar & str; } test(){_tcscpy_s(str,(sizeof(_T("TEST"))+1)*2,_T("TEST"));} }; int main(){ test te(); std::locale::global(std::locale("japanese")); boost::archive::text_woarchive oa(std::wcout); //boost::archive::text_oarchive oa(std::cout); oa & te; return 0; }
84 名前:73 mailto:sage [2006/10/11(水) 20:53:31 ] あ、メモリ確保してない^^;
85 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 22:08:27 ] >>83 C2027ってことはVisual C++だろ。 出力の中から、エラーを起こしたテンプレートがどこから実体化されたのか辿れるようになっている。
86 名前:73 mailto:sage [2006/10/11(水) 22:21:21 ] >>85 まじすか、情報ありがとうございます! あの後、組み込み型での実行は諦めてwstringバージョンを作りました 一応ちゃんと動作しますが、#elifディレクティブのほうは文字化けします #include <tchar.h> #include <string> #include <iostream> #include <fstream> #include <locale> #include <boost/archive/text_woarchive.hpp> #include <boost/archive/text_wiarchive.hpp> #include <boost/serialization/string.hpp> #define BOOST_LIB_NAME boost_serialization #include <boost/config/auto_link.hpp>
87 名前:73 mailto:sage [2006/10/11(水) 22:23:10 ] class Test{ public: Test(std::wstring s):str(s){}; std::wstring str; private: friend class boost::serialization::access; template<class Archive> void serialize(Archive& ar, const unsigned int version){ ar & str; } }; int main(int, char**){ std::wcout.imbue(std::locale("")); Test te(_T("日本語文字列の入力テスト")); #if 1 std::wofstream ofs(_T("out.txt")); boost::archive::text_woarchive oa(ofs); oa & te; ofs.close(); std::wifstream ifs(_T("out.txt")); boost::archive::text_wiarchive ia(ifs); ia & te; ifs.close(); std::wcout << te.str << std::endl; #elif 1 boost::archive::text_woarchive ar(std::wcout); ar & te; #endif return 0; }
88 名前:77 mailto:sage [2006/10/11(水) 22:23:11 ] >>79 まずはbjam.exeをゲットしてboostのフォルダに入れておく。 それから、次のようなバッチファイルを作って、実行。 cd "boostのフォルダ" set INCLUDE=STLportのヘッダのフォルダ;%INCLUDE% set LIB=STLportのライブラリのフォルダ;%LIB% call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat" bjam -sTOOLS=vc8_0 --prefix="ライブラリの生成先フォルダ" install 深くは使ってないんで、完璧にうまくいってるかは分からないけど。
89 名前:76 [2006/10/12(木) 13:23:24 ] 77さん書き込みありがとうございます。 その方法でやってみるとBoostとSTLportがVC8上で共存できませんでした。 >bjam -sTOOLS=vc8_0 --prefix= ではなく bjam -sTOOLS=vc8_0-stlport --prefix= が公式HP上で出るのを待つしかないのでしょうか??
90 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 15:28:52 ] >>89 ぐぐったらでてきた d.hatena.ne.jp/Hossy/20060926
91 名前:77 mailto:sage [2006/10/12(木) 18:42:34 ] 普通に使えてるけど……
92 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 20:51:42 ] もはやboost無しでは生きていけない。 cygwinにboostのパッケージが用意されていて助かった。
93 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 21:01:59 ] じゃぁ死ね
94 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 21:07:00 ] >>93 何だとゴルァ!
95 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 21:32:05 ] C++をどっぷりやってる人のblogとかは boost使ってない事が無いな
96 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 21:36:26 ] boost禁止のプロジェクトにアサインされて死ねばぁ
97 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 21:58:03 ] つうかboostOKのプロジェクトなんてそうないだろ
98 名前:デフォルトの名無しさん [2006/10/12(木) 22:02:52 ] >>95 んなこたない。boost使ってない奴はC++にどっぷりじゃないと思ってるだけだろ
99 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 23:26:17 ] >>98 つまり>>95 にとって「C++どっぷり」と「boost使う」が同値なわけか
100 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 23:30:55 ] C++に詳しい奴がboost使うと思ってるんだろ。 実際は逆なんだけどな。
101 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 23:36:14 ] ああ、本当にC++に詳しい奴はBoostを作る、だからな。
102 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 23:37:59 ] >>100 逆っていうか、相関性はあまりない気が 詳しいかどうかじゃなくて、便利だから使うだけだしな
103 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 23:38:10 ] >>100-101 激しく同意
104 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 23:56:51 ] どっぷりというか魅せられた奴が多いとは思う
105 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 00:10:38 ] >>95 アイディアとかは参考にするし、似たようなもの実装することもあるし、 既に似たようなもの作ってたりとかだなあ。 スレッドとかファイルシステムとかのライブラリって結局自前じゃないと いろいろ融通が利かなくって、他人のはめんどくさい気がするんだよなあ。 ちょっとずれるけど、C++もCPANみたいにFTPとかXMLとか応用的なライブラリが まとまって管理されたりするといいなあとか思うな
106 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 00:35:18 ] GILみたいになんでもかんでもboostに投げればいいんじゃないかな?
107 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 07:54:25 ] 大したことない自前ライブラリ使ってるから投げられないと思われ
108 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 08:55:25 ] まあ新しいライブラリとかが出たときは、いつでも「なんでもできるし、 もう自分で作る必要はない」とか売り文句がついてくるんだけどさ。 OWLとかMFCもATLもそうだったけど、そういうのの上位に作るとさ、その ライブラリの衰退と共に自分のコードも死んじゃうんだよね。 あと、自前はたいしたことなくていいんだよ。必要なときに必要な箇所を 実装すればいいんだからさ。
109 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 09:12:12 ] Boostはその特性からして、衰退するときはC++と同時だと思うが。
110 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 09:29:40 ] それはそうかもね。MFCとかよりはだいぶ標準よりだろうし。 まあ、boostの場合は衰退の前にもっと繁栄しないとかなと。。
111 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 10:17:36 ] 今は、C++からの逃げ道としてC#やjavaが用意されている時代です。
112 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 12:16:24 ] >>101 boostの開発者は自分で使いたいから作ったんじゃないの? 自分では使わないけれど他人に使わせるために作ってるわけ? 105の言うとおりに同等品を既に作ってあるとかなら別だけど。
113 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 12:37:39 ] 人は何故mplを作るのか? そこにテンプレートメタプログラミングがあるからだ。
114 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 12:42:21 ] >>112 ただboostを使ってるだけの連中は、boostを作ってる連中に比べれば全然C++に詳しくない。 って話だろ?
115 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 12:44:10 ] プロジェクトで使えなくとも、Boost のヘッダ見て部分的に移植するのは いろいろと勉強になって楽しいけどな 特に detail/ 以下漁るといろんなモノ発掘できて楽しいw
116 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 12:48:55 ] >>114 ただC++コンパイラを使っているだけの連中は、C++コンパイラを作っている連中に比べれば(ry
117 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 19:18:21 ] >>115 たしかに。lightweight_mutex (shared_ptr で使用)だの、 phoenix (spirt で使用) だのは、ブラッシュアップして表に出して欲しいくらい。
118 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 22:14:55 ] でも、同等機能が複数あるのはやだなあ。統一してほしいものだ。 phoenixはlambdaと統合中とかどこかでみたような。。
119 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 13:11:22 ] >>105 順番の問題じゃない?下位のクラスが安定してきたらそのうちできるでしょ。 spirit使えばXMLパーサの実装も理屈的にはBNFを移すだけになるしさ。
120 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 16:27:50 ] C++ の場合は空間効率と実行効率の要求が分野によって全然違う上に、 そこをいくらでもチューンナップできる自由度もあるので、 なかなか汎用的な低レベル層を作るのは難しいという気がする。 で、それをテンプレートポリシー化によって汎用的にしすぎると 今度はコンパイル時間が許容できなくなったり、言語非互換の壁に ぶちあたったりするという罠。
121 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 17:59:04 ] 伸びないねこのスレ C++は詳しくないけど面白そうなのでboost::spiritを学び始めた どういったことに使おうかなーって思って BNFの具体的な使われ方を調べようと思ったんだが ググっても基本的な使い方ばっかりがヒットするorz 正規表現雑技のページとかが理解できたら 幅が広がりそうだが 今度は逆に応用過ぎて理解できない
122 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:19:59 ] おもしろいけど ミニ電卓作るとか 自前でXMLパーサ作る位しか思いつかなかった 頭ひねって普通にCで書いた方がコンパイル速度でイライラしなくて済むけど…
123 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 19:26:36 ] すでにある程度作ってしまったプログラムの構造を変えずに おまけ機能を追加するときに、 bindとかは大活躍してる lambdaは使いこなせてない
124 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 20:11:14 ] そこでboost::lambda::bindですよ。
125 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 00:01:29 ] boost::interprocessって8月のも10月のもexampleにある奴すら ビルドできないんだけど、誰かどこに手を入れればいいかわかる人居ます?
126 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 08:53:42 ] まあまだ日本で実務でばりばり使ってますって人は少ないんじゃない? C++上級者が興味を持って、調べてる的な感じだよね。 てか、商用ではJavaかスクリプトになりそうだから、クロスでC++って 需要あんまなさそうとか。。
127 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:02:46 ] C++を(C++的に)使ってる人自体がまず少なそう。
128 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:33:05 ] んなアホな
129 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:11:04 ] lang = c++ lang == c こういうことか! …すいません。でも仕事で非標準(かつ多機能)のライブラリの利用を認めてるとこは多くないんじゃない?
130 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 18:35:35 ] shared_ptrに感動しますた さりげなくスレッドセーフになっていてcoolです
131 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 21:50:45 ] スレッドセーフだったっけ?
132 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 21:55:43 ] 参照カウンタの部分はスレッドセーフだな
133 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 22:47:21 ] 誘導されてきました int main(int argc, char * argv[]) { boost::numeric::ublas::vector<float > vec(2); vec(0)=1.0;vec(1)=2.0; boost::function1< float,boost::numeric::ublas::vector<float> > norm_2Functor = &boost::numeric::ublas::norm_2<boost::numeric::ublas::vector<float> >; float out= norm_2Functor(vec) ; } 想定外のメモリーを参照しました で落ちる。何が悪いのだろう。
134 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 16:38:12 ] オフィシャルサイトに何が起こったんだろう。
135 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 16:58:41 ] SFのipが変わったせいで転送に失敗してるとさ じきに直るでしょ
136 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 17:02:39 ] あと急ぎの用があるなら boost.sourceforge.net/
137 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 17:37:55 ] おお、さんきゅー!
138 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 00:32:34 ] >>132 でふぉでそうだったっけ?そしたら遅くないか?
139 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 00:35:46 ] スピンロックかも
140 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 00:49:28 ] Win32だとInterlockedExchange()あたり使ってるんじゃなかったか。
141 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 01:43:59 ] >>138 つ boost/detail/sp_counted_base.hpp
142 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 03:24:06 ] >>133 VC8+boost1.35で試したらちゃんと動いたけど 使ってるコンパイラとboostのバージョンは?
143 名前:133 mailto:sage [2006/10/19(木) 09:30:48 ] >>133 >>142 VC2003 + boost 1.33.1 です とりあえずboostのバージョンあげてきます
144 名前:133 mailto:sage [2006/10/19(木) 09:34:24 ] sourceforge.net/project/showfiles.php?group_id=7586 boost1.35なんてないよ
145 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:14:37 ] >>144 CVSの最新版が1.35
146 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:36:49 ] >133 out = 2.236068 g++(mingw3.4.5)+boost1.33.1 でも問題ないようにみえます。
147 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:43:43 ] コンパイラか
148 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 11:46:32 ] >>133 VC8+boost1.33.1でもちゃんと動くね
149 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 16:25:42 ] >>133 VC2003で試したら落ちたのでアセンブリ出力を調べてみた。 function1<float, ublas::vector<float> > norm_2Functor = &ublas::norm_2<ublas::vector<float> >; and eax,00402fd0 ; ここがおかしい。なんでANDやねん...(00402fd0はnorm_2のアドレス) push eax ; VC8では2行あわせてpush 00402fd0だけになっている lea ecx,dword ptr [ebp-3c] call 00403040 mov byte ptr [ebp-04],01 で、norm_2Functorの宣言をこうしたらとりあえず動いた。 function1<float, ublas::vector<float> > norm_2Functor(&ublas::norm_2<ublas::vector<float> >); push +00 ; この00は何なんだろう… push 00402fd0 lea ecx,dword ptr [ebp-3c] call 00403040 mov byte ptr [ebp-04],01 よくわからないpush 00がとても不安だけど…(VC8ではpushはひとつだけ)
150 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 21:04:32 ] VS2003ではfunction1を初期化 norm_2Functor(&ublas::norm_2<ublas::vector<float> >); でしか呼べないのね。 objectの意味ねえ
151 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 21:49:33 ] >>150 function1<float, ublas::vector<float> > norm_2Functor(NULL); で宣言しておいてswap技法 function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >).swap(norm_2Functor); で実際の関数を代入とか… ヤッテランネ(ノ`□´)ノ⌒┻━┻
152 名前:151 mailto:sage [2006/10/20(金) 21:52:00 ] メンバ関数のswapがないから swap(norm_2Functor, function1<float, ublas::vector<float> >(&ublas::norm_2<ublas::vector<float> >)); でないと無理か そもそもできるかどうか知らんけど
153 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 22:03:06 ] 腐ったコンパイラでなんとかしようという努力は不毛だぜ
154 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 22:38:40 ] >>152 そもそも一時オブジェクトをswapの引数にはできん
155 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 23:17:36 ] >>154 --->?swap技法?
156 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 00:24:57 ] 中国人は帰れよ
157 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 00:43:07 ] >>155 意味不明
158 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 00:43:28 ] >>154 vectorが確保するメモリを要素数ぴったりに合わせるテクニックで x.swap(std::vector<T>(x)); ってのがあったと思うけど、これもダメなの?
159 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 00:46:06 ] 一時オブジェクトをswapの引数にするのは何も問題ない(ちゃんとしたコンパイラなら)
160 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 00:50:03 ] constでない参照引数に一時オブジェクトはダメじゃなかったっけ?
161 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 01:01:03 ] >>158 VC++2003で警告レベルを最高にするとwarningになるな。
162 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 01:27:59 ] 23.1 Container requirementsによればa.swap(b)とswap(a,b)は同じで、 25.2.2 Swapによれば template<class T> void swap(T& a, T& b); 1 Requires: Type T is Assignable. とあるから、できないんじゃね? と思ってx.swap(std::vector<T>(x));とやったらVC++2005でエラーになった。 と思ったらstd::vector<int>(x).swap(x);は通った。 何じゃこりゃ。
163 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 02:05:58 ] >>158 swap技法はstd::vector<T>(x).swap(x);じゃない?
164 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 07:43:54 ] >>162 template<class T> void swap(T& a, T& b); はaもbも非const参照だから、一時オブジェクトを受け付けない。 std::vector<int>(x).swap(x);は、 std::vector<int>(x)が一時オブジェクトだが非constなので、非constなメンバ関数を呼べてしまう。
165 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 08:54:42 ] >>158 お前何にもわかってないのな >>159 馬鹿確定
166 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 10:01:26 ] あ、一時オブジェクトに対して非constメンバを呼ぶのはいいのか。
167 名前:デフォルトの名無しさん mailto:haskell厨 [2006/10/21(土) 21:13:06 ] int add(int a,int b){return a+b;} があるとして、 boost::function<int (int,int)> f = add; はコンパイルできるわけですが、 boost::function<boost::function<int,int> (int)> g = add; のようなことがしたい場合はどうし たらよいでしょうか?addを、int->int->int ではなく int-> (int->int) として扱いたいというか。 gに、あとで(addの)第一引数を渡して、boost::function<int,int>型の関数オブジェクトを得て、 更にその後で(addの)第二引数を渡し、最終結果を得たいという感じです。
168 名前:167 mailto:sage [2006/10/21(土) 21:20:16 ] fをgに変換する方法でも結構です。 よろしくおながいします
169 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 21:44:22 ] >>167 どうしてもその変換をしないと駄目? 第一引数が既にあるならそれを部分適用することは簡単なんだが。
170 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 22:05:03 ] 思った程大変じゃなかった。 # include <boost/function.hpp> # include <boost/lambda/lambda.hpp> # include <boost/lambda/bind.hpp> # include <iostream> # include <functional> namespace lam = boost::lambda; int main(void) { typedef boost::function<int (int, int)> f_type; f_type f = std::plus<int>(); boost::function<boost::function<int (int)> (int) > g = lam::bind(std::bind1st<f_type, int>, f, lam::_1); std::cout << g(7)(2) << '\n'; }
171 名前:167 mailto:sage [2006/10/21(土) 22:05:15 ] >>169 第一引数の部分適用が簡単なのは承知しているのですが…変換希望です。
172 名前:167 mailto:sage [2006/10/21(土) 22:23:29 ] >170 ありがとうございます。やってみます。
173 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 23:04:05 ] boost::bindでもいけるね
174 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 23:10:30 ] >>173 いってみてよ
175 名前:デフォルトの名無しさん [2006/10/22(日) 01:05:59 ] template <typename A, typename B, typename C> int foo(A a, B b, C c) { return 0; } template <typename A, typename B> int foo(A a, B b) { return 0; } に対して、後者の関数をbindするつもりで boost::bind(foo<int,int>, _1, 100); すると、no matching function for call to ‘bind(<unresolved overloaded function type>, boost::arg<1>&, int)’ とか言われてしまうんだが、これって回避策ありますか? gcc4.1です
176 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 01:12:24 ] >>175 boost::bind(static_cast<int (*)(int, int)>(foo), _1, 100)
177 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 12:38:25 ] >>175 class Void{}Void_v; template<class T1, class T2, class T3=Void>struct select_f; の特殊化を作ってfooの引数にVoid型があるなしで選択するとかは。
178 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 12:42:09 ] >>177 は?
179 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 12:43:22 ] >>177 175は関数テンプレートな訳だが..
180 名前:177 mailto:sage [2006/10/22(日) 13:30:36 ] >>179 えーと、あいまいな関数オーバーロードの解決にはキャストあたりが手っ取り早いと思うけど そこで、 template <typename A, typename B, typename C> int foo(A a, B b, C c) { return select_f<A, B, C>()(a, b, c); }// put away foo else ・・・ boost::bind(foo<int,int, Void>, _1, 100, Void_v); こんな感じでキャストを使わない方法の案を提供したかったわけですよ。
181 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 13:39:27 ] キャストを使わないでそれを使うことに何の意味があるの? あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの?
182 名前:177 mailto:sage [2006/10/22(日) 13:55:49 ] >>181 キャストを使わない。 キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性をなくせる(たぶん)。 > あと、>177のように何の前置きにもなしに言って、理解してくれるエスパーだと思ったの? タイピングの勢いだ。
183 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 14:28:28 ] > キャストを使ったときに起きるテンプレート関数の特殊化に対しての曖昧性 具体例が欲しいな
184 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 15:58:19 ] boost::lambdaのunlambdaとprotectがよくわからないんだぜ
185 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 16:38:15 ] >>183 たとえば、>175を template <typename A, typename B> int foo(A a, B b); (b) template<class A, class B>int foo(A*,B*); (c) こんな(c)を追加して、(c)or(b)のどちらかをbindで使いたい場合 このオーバーロードの解決には結局、関数オブジェクトが手っ取り早いと思います。
186 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 17:13:50 ] >>185 それ、曖昧か? 後者は foo() についてポインタ型を扱う場合の特殊化を宣言しているので、 引数の型に応じて定義が使い分けられるだけじゃないの? ↓キャストでもコンパイルできたし。 int a, b; (static_cast<int (*)(int*, int*)>(foo))(&a, &b);
187 名前:185 mailto:sage [2006/10/22(日) 17:59:14 ] >>186 boost::bindは?
188 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 18:02:01 ] >>187 boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a); これぐらい自分で補完しろよ。
189 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 18:35:54 ] >>188 コンパイル出来るんだ。へぇー。
190 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 19:04:01 ] がんばって早く「ごめんなさい」の言える大人になろーね。
191 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 19:23:43 ] ごめんなさい
192 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 19:40:14 ] >>190 だって食い下がって逆撫でしていれば >>188 みたいな知識ひけらかし大好き君が無償で色々書いてくれるんだもん。 こういう子は利用しない手はないって。
193 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 19:57:34 ] >>192 普通に質問すればいいのに、なんでわざわざそんな手段をとる必要がある?
194 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 20:19:00 ] 回答をもらえる確率が上がるから。
195 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 20:25:02 ] まぁ、スレを客観的に眺めると、知識ひけらかし大好き君は>177と分かるんだけどね。 >176で終わってる質問だし。 それに>188の知識は>176以上のものではないし。 散々引っ張っといて同じモノしか出ないんじゃ、割に合わない。 単純に悔しくなった>177君が利用してやった振りしてるだけ。
196 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 20:47:18 ] >>182 に「たぶん」って書いてあるのは、ただの妄想ってことでいいの?
197 名前:189 mailto:sage [2006/10/22(日) 23:35:55 ] >>188 ごめん。 だれもつっこんでくれないから寝る前に一言 > boost::bind(static_cast<int (*)(int*, int*)>(foo), _1, &b)(&a); ちょっと言い訳・・・・「&a」参照の罠に嵌ってました。以上です。では、おやすみ。
198 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 18:14:32 ] std::map みたいに扱えて、実はバックエンドがデータベースだなんて すてきな使い心地のライブラリって無いものでしょうか。
199 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 19:42:34 ] boost::graph と ASLの adobe::forest が車輪の再発明ぽい点について
200 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 20:28:36 ] ASL かわいいよ ASL
201 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 23:26:50 ] あるあ…(ry >198
202 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:02:53 ] >>201 あるんですか? なんて言うライブラリか教えて貰えませんか? 今、std::map を boost::serialization でディスクに書き出しているんですが、 かなりデータ量が大きくなってきて、すべてをオンメモリで処理するのが 苦しくなってきました。
203 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 03:11:33 ] AllegroCache. これ最強。
204 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 09:38:05 ] boostいいね。使っているとスルメみたいに味わい深いわ。 しかし古い設計で組んでいた俺の昔のコードは一体何だったんだと。 orz
205 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 11:07:28 ] STLぽい数式処理と数値計算のできるライブラリーってないでしょうか? せめて多項式か2次式だけでもできると 少し数値計算プログラムが楽になる
206 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 15:38:08 ] ASLの adobe::dictionary_t はstd::mapよりたくさん要素あつかえるとかtutorialに書いてあった
207 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 16:19:02 ] >>198 Berkeley DBでも使え。
208 名前:201 mailto:sage [2006/10/27(金) 00:43:04 ] ねーよ
209 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 08:40:10 ] >>201 >>208 馬鹿?
210 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 11:05:09 ] >>198 つlibstldb4
211 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:20:16 ] >>198 なぜ boost スレへ?
212 名前:デフォルトの名無しさん mailto:age [2006/10/27(金) 20:13:30 ] std::plus()はreturn a+b;ですが、return a+=b;してくれる関数オブジェクトは無いでしょうか? 手前で作ればいいのですが、boostにあるならそっちをつかいたく。
213 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 20:57:59 ] _1 += _2
214 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:06:44 ] >213 それはコンパイルできんだろ..
215 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:11:33 ] class MyPlus : public std::plus, boost::addable< point<T> , boost::subtractable< point<T> > { MyPlus operator+=(const MyPlus&); }; でいけたらいいな
216 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:16:44 ] >>214 using namespace boost::lambda;
217 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:23:35 ] std::accumulate は?
218 名前:217 mailto:sage [2006/10/27(金) 21:25:48 ] あ、関数オブジェクトじゃなかったorz
219 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:30:13 ] >>216 +=はオーバーロードされていないと思うが。
220 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:38:25 ] んなあほな。 複合代入演算子はクラスの外からでも多重定義できるのだから、 boost::lambdaで使えないわけが無い。
221 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:42:58 ] +=は使える。 クラス外から多重定義できるかどうかは関係ないような。
222 名前:212 mailto:sage [2006/10/27(金) 21:51:39 ] >>213 できました。ありがとう
223 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 21:52:36 ] そうか、_1なんかはそれ自身ラムダオブジェクトだったな。
224 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 23:28:35 ] >>219 死ねカス
225 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 18:40:49 ] 話題が無いな
226 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 18:54:49 ] 話題ねぇ… opensource.adobe.com/gil/ 今レビューされている、Generic Image Library が通れば、 各種画像サポートが実現されるわけで、非常に期待してる。
227 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 20:09:51 ] ほお adobeがopensourceとは..
228 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:09:56 ] 通ればってどういうこと?
229 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:14:22 ] ttp://lists.boost.org/Archives/boost/2006/10/111131.php ちうこと。
230 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:29:06 ] adobe ASLで japan.zdnet.com/news/devsys/story/0,2000056182,20082134,00.htm ユーザーインターフェイスの自動生成? 本当にできるの?
231 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:31:59 ] なぜvigraじゃなくてgilなんだ 機能の豊富さからいったらvigraが上だろう kogs-www.informatik.uni-hamburg.de/~koethe/vigra/
232 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:42:28 ] >>231 作者がboostに提案したか否かだろ
233 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:51:16 ] >>230 発表された頃に斜め読みした限りでは プログラマとデザイナで仕事を分離するという程度の内容だったような?
234 名前:デフォルトの名無しさん [2006/10/31(火) 01:39:42 ] >>232 どの記事だったか忘れたけど >vigraのほうが好きだけど,vigraは作者が一人だし、gilが採択されたら >その作者がんばるだろうからいいじゃん とか書いてあった
235 名前:234 mailto:sage [2006/10/31(火) 01:41:27 ] >>234 lists.boost.org/Archives/boost/2006/10/112316.php これこれ
236 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 03:07:04 ] やる気のない実装を見るとRejectされそうだけどな
237 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 12:11:48 ] lists.boost.org/Archives/boost/2006/10/112534.php VC7.1でコンパイルとおらねえじゃねえかよ 同じとこでこけやがる
238 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 18:46:57 ] LinuxのGCCでワイド文字全般がうまく機能しないです。 gcc3.3.6 libstdc++3.3.6 boostでなんとかなりませんか? wcout << L"てれれのレ"; [****@ **] (沈黙)
239 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 18:51:43 ] 端末の文字コードが間違っているなんてこと無いよね?
240 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 19:18:04 ] ないです。
241 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 19:24:22 ] 出力をパイプでod -tx1に流して16進で見ても、やはり [****@ **]./a.out | od -tx1 0000000 (沈黙)
242 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 19:41:44 ] pc8.2ch.net/test/read.cgi/tech/1143375639/294-304 これと同じ問題?
243 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 19:52:16 ] gccのバージョン上げろ
244 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 20:25:51 ] つまり L をコンパイラがまともに処理してくれていない?
245 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 20:58:26 ] そうだよ。-Sでアセンブラ出力みてみ。
246 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 21:14:59 ] バージョンの問題なのか?
247 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 21:39:46 ] >>2 .4.6 --input-charsetが3.4からだから、そうだと思うんだけど。
248 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 21:40:21 ] あかん、アンカーがorz
249 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 23:02:31 ] >>248 誰がうまいこと言えと
250 名前:デフォルトの名無しさん mailto:あげ [2006/11/01(水) 01:37:53 ] function<int (int)> hohe(int x) { return boost::lambda::_1 +x; } でxを延命させるうまい方法はありますか? 別途関数を作ってbindとか、 plus<int>()にbindあたりはナシで。
251 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 01:48:57 ] >>250 延命も何も、λ式に保持されるのはその時点でのxの値で、 xへの参照ではないから、xの寿命を気にする必要はない。
252 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 04:26:38 ] gcc3.4 gcc4.0.2で試したらワイド文字関係がすこぶる正常。 結局バージョンの問題か。
253 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 09:28:50 ] もう少し前は日本語のみのワイド文字対応が入っていたんだけど、 3.3→3.4辺りで国際化した。あなたの使ったのは狭間の具合い悪いバージョン。
254 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 10:49:17 ] GUIライブラリのboost取り込みってどうなった?
255 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 11:27:37 ] そんな激しくプラットフォーム依存な物を 標準ライブラリに入れようとしているのか。 もしかして curses みたいなものか?
256 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 11:55:13 ] boost mailing listで さっきbug fixしてupした とかいってるやつはcvsのバージョンのことなのかな
257 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 17:30:47 ] lexical_cast.hppを見てみたら、半年くらい前に見たときと 大幅に違ってるんだけど、何か変わったの?
258 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 21:59:04 ] カレントプロセスのカレントディレクトリを取得する方法 ってありますか? GetCurrentDirectoryみたいなやつ。
259 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 22:09:37 ] >>255 お前の中でThreadやfilesystemは一体なんなの?
260 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 22:57:40 ] そんなには激しくないプラットフォーム依存な物
261 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 01:13:53 ] >>258 boost::filesystem::current_path()
262 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 01:30:36 ] それLinuxだと実行ファイルのパスじゃなくて userのカレントディレクトリを返しちゃうん だよね。 これLinuxの仕様くさいから仕方ないか。
263 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 01:35:20 ] >>262 どこから実行ファイルのパスの話が出てきたんだ?
264 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 01:37:59 ] >>262 こいつアホすぎww
265 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 11:06:53 ] >>262 Windowsも似たようなもの >>258 の意図は知らないがcurrent_pathはたいてい役に立たない
266 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 11:07:31 ] >>257 最適化 数字は自前でパースするようになった
267 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 11:33:40 ] 他Cスレで聞いても誰も答えてくれなかった Cで行列演算といえば LAPCK boost::numeric::ublas あたりが定番だけど 統計計算でお勧めは? 今boostで審査中や過去にrejectされたものでもいいので誰か教えて 使いたい機能は 単純に共分散行列を計算 正規分布に関係したいろいろな計算 できれば kai^2 test t-test とかちょっと高度なこともしたい。
268 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 12:49:28 ] >>266 でも未だに1e+10とかは扱えないんだなw
269 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 12:57:56 ] boost::serialization で NaN (+inf とか -inf とかも)を シリアライズできないのは痛い。
270 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 14:18:37 ] boostのclass名が ClassName じゃなくて class_name になってるのが気持ち悪い なんでこんな命名規則になった
271 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 14:28:12 ] C++の標準ライブラリと同様の命名規則を採用したから。
272 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 16:40:38 ] 識別子をなんでもかんでも小文字にしたくなって困る
273 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 17:13:19 ] >>267 boostじゃないけど liboctave libRmath libgsl あたり
274 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 23:31:11 ] 次期標準でも concept 名だけは大文字になりそうだな
275 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 23:32:09 ] >>273 thx liboctave はmatlab使いには便利そう libRmath 本当の統計屋さんはやっぱりRを使うのだろうか R使ったことない liggsl こんなのあったんだね。 でも多項式演算関係以外は既存libとかぎりなく一緒
276 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 02:10:07 ] >>270 おまえさんは標準C++ライブラリも気持ち悪いって言うんだろうな。 実際そういう人が結構多いようだ。
277 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 03:05:14 ] Javaに毒されすぎ
278 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 03:20:37 ] このスレ的には C++ に毒されてる連中が多いから Java のメソッド名ナニアレ気持ちわるーい、となるのが正しい
279 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 03:40:40 ] むしろHaskellやPythonなんだが
280 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 03:47:52 ] HaskellもPythonもClassNameだな。
281 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 03:50:44 ] すべて小文字な命名法はlispを思わせる。
282 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 04:31:57 ] lispはハイフン区切りで全部大文字(CLASS-NAME)だろ。
283 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 08:11:55 ] というか(強制した時以外)大文字小文字の区別がない。> Lispのシンボル
284 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 12:34:11 ] 正確には「Common Lispは・・・」と言うべきだろう
285 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 03:31:58 ] boostって Subversionではアクセスできないの? cvsのみ?
286 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 03:35:19 ] >>285 前から話は出てるんだけどねぇ。 次のリリースの後にしようとして、リリースが延び延びになってる気配。 ちゃんと ML 漁れば、他に理由があるのかもしれないけど。
287 名前:デフォルトの名無しさん [2006/11/05(日) 19:38:50 ] lambda_functor<U>のアドレスってどうしたらえられますか。
288 名前:287 mailto:sage [2006/11/05(日) 19:40:40 ] たとえば (_1+_2)のようなラムダがあった場合 このlambda_functorのアドレスが知りたいのです。
289 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 19:43:31 ] そんなものは存在しません
290 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 20:40:51 ] >>289 無理か。諦めます。レスありがとう。
291 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:10:34 ] md5やsha1を計算するライブラリありますか? crcはあるようですが
292 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:26:13 ] md5はそのままソース引っこ抜いて使えるようになってた。 この手の参照透過性のある関数を 特にパラメタライズするメリットは感じないが。
293 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:28:38 ] MD5はRFCにあるソースはK&R式の関数宣言なんでC++としてコンパイルしようとすると失敗するはず。
294 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:28:43 ] >md5はそのままソース引っこ抜いて使えるようになってた。 どこ?
295 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:30:11 ] RFC
296 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:30:37 ] >>295 ありがとう
297 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:34:49 ] Boost には無いので sourceforge.net/projects/cryptopp/ とか botan.randombit.net/ とか opensource.adobe.com/classadobe_1_1md5__t.html opensource.adobe.com/group__adobe__sha.html あたりで
298 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 21:38:29 ] >>293 コンパイルはそのまま通ったと思う。 数年前のことなので記憶が不鮮明だが、GNUのbinutilsから引っこ抜いた気がする。
299 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 00:37:42 ] >>293 そんなの1分で直せるじゃん
300 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 14:32:48 ] まだ特定してないんだけど、spiritのどこかで using namespace std; の記述があるみたいですね。 (std::coutが名前空間を指定せずに使えてしまった) これってちょっと問題あるような…。
301 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 14:40:05 ] $ grep -FR "using namespace std;" . ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./core/primitives/impl/primitives.ipp: using namespace std; ./fusion/sequence/detail/manip.hpp: using namespace std; ./iterator/impl/file_iterator.ipp:using namespace std; ./phoenix/closures.hpp: using namespace std;
302 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 14:42:18 ] >>267 >>273 >>275 こんなのあったんだね Boost.MathToolkit www.johnmaddock.co.uk/toolkit lists.boost.org/Archives/boost/2006/10/111114.php
303 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 15:26:41 ] >>300 >>301 >./iterator/impl/file_iterator.ipp これがまずい. 他の使い方は関数内なので問題ないし,意図的というか必要な using directive.
304 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 15:30:51 ] boost mailing list に 新しいライブラリーをaccept するかのreviewが投稿されてるけど ただのユーザーとしてのreviewを投稿してもいいのかな?
305 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:21:32 ] boostの中に ClassNameって命名規則つかってるの1つもないのかな 例外なく class_name に修正されるのかな
306 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:25:32 ] 大文字って、そこだけ目立つから、見にくくなる。 あと長すぎるシンボルも関数の引数のところで行が折り返して見にくくなる。 boostってほどほどで良い感じ。
307 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:34:22 ] ublas があるのに boost.glasとかわけわかんね glas.sourceforge.net/doc/papers/introduction/index.html
308 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 20:27:15 ] >>305 Boost にはガイドラインがあって、そこでコーディングルールはある程度決まってる。 boost.org/more/lib_guide.htm ・クラス名や、メソッド名は class_name や method_name みたいにすること。 ・テンプレートパラメータは TemplateParameter みたいにすること。 ・分かりやすい名前にすること。 ・マクロは MACRO_NAME みたいにすること。
309 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 20:29:55 ] 間違えた。 ×マクロは MACRO_NAME みたいにすること。 ○マクロは、すべて大文字で、BOOST_ からはじめること。 だな。
310 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 22:27:44 ] >>304 投稿するのは自由だろう。「ただのユーザーとして」というのはちょっと引っかかるが。 不満を述べるだけじゃなくて、代案か、代案が出せないと考える理由を出すべきだろうね。 まぁ筋が通ってなければスルーされるだけ。何か考えがあるなら投稿しとけばいいと思うよ。
311 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 08:21:16 ] 「ただのユーザーとして」 っていう表現にどんな意味がこもっているかにもよるよね。 何となく 「恥かきそうだったり辛そうだったりしたら、いつでも綺麗にバッくれて 俺の人生においてすべてを"なかったこと"にできる道を確保したまま」 という意味な気がするんで、同じく引っかかる。
312 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 08:58:36 ] >>311 は一生引っかかっていればいいと思うよ。 何かに。
313 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 09:29:40 ] ドンピシャなら絶対噛み付いてくるだろうなと期待はしていたけどw
314 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 09:31:05 ] >>312 に言葉の重みを感じてちょっとワロタ
315 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 10:55:34 ] まぁよっぽど悔しかったんだろ。
316 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 19:41:42 ] >>226 GIL has been accepted as a boost library. lists.boost.org/Archives/boost/2006/11/112896.php
317 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 19:51:41 ] >>316 通ったのか!
318 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 22:12:22 ] >>300 の問題は Spirit 1.84 だと修正されてた.
319 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 01:18:37 ] >>316 accepted なのはいいけど肝心の GILのホームページが見れない
320 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 10:03:45 ] >>319 今は見れるようになってるね
321 名前:gil mailto:sage [2006/11/08(水) 11:30:18 ] acceptの感動で気絶してました。
322 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 12:06:06 ] >>321 そのわりには Latest news が更新されていないじゃないか。 opensource.adobe.com/gil/
323 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 12:29:56 ] gil頻繁に更新されてるみたいだけど どこが変わったか書いてないんだよね
324 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 01:40:50 ] GILをVS2003で早速使ってるけど fatal error C1204: コンパイラの制限 : 内部構造がオーバーフローしました。 とかおきるのはVS2005に乗り換えればなんとかなるのかねえ
325 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 10:16:50 ] で、1.34 はいつリリースなのかね?
326 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 10:32:21 ] 今店出ました
327 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 11:56:38 ] 延びないうちによろしく。
328 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 14:18:57 ] boost::filesystem::pathのコンストラクタではパスを表す 文字列を与えますが、windowでドライブ名を含めたパスを 扱うにはどうすればよいでしょうか? 単純に path("C:\hoge"); とすると落ちてしまいます。
329 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 14:28:15 ] \\
330 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 14:51:34 ] path::default_name_check( &native );
331 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 16:09:25 ] name_check関数を設定すればえがったんですね。 ありがとうごぜーますた。
332 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 16:34:13 ] www.boost.org/libs/filesystem/doc/path.htm path( const char * src, name_check checker ) こういうコンストラクタがあるので、 コンストラクトのときだけ指定してやればいいんだぜ? path p( "c:", native ); p /= "/foo"; assert( p.string() == "c:/foo" );
333 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 16:36:30 ] おっと、名前空間は適当につけてくれ?
334 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 19:27:37 ] それは見て分かっただよ。 でも、あんがとさん。
335 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 16:09:31 ] boost::graph と boost::numerics::ublas を駆使した graphical_modeling ( とりあえず partilce filterだけインプリメント) ってパッケージ作ったらboostにアクセプトされると思うのだけど どう思う?
336 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 16:31:12 ] まず形になってから言えばいいんでないかな?
337 名前:335 mailto:sage [2006/11/10(金) 16:41:43 ] >>336 死んでしまったらしいプロジェクトの再活性のために メンバー募集してるような感じなので sourceforge.net/forum/forum.php?thread_id=1608834&forum_id=334280 やる人が増えたらいいなって、それだけです。
338 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 14:23:40 ] >>324 SP1で解決されたと書いてるがどうだろう
339 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 22:12:55 ] boostにMFCのTRACEマクロと同等のものありませんか?
340 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 10:21:48 ] >>89 >>90 すっごい亀なんだけど,VC++8 と STLport 5.1 と Boost 1.33.1 は完全には共存できないことが分かった. d.hatena.ne.jp/Hossy/20060926 ここに書かれている方法を使えば,wave 以外のライブラリは 構築できる.でも,wave だけはどうやっても無理. なぜかというと,spirit の tree_node<T> の定義が問題なんだ. tree_node<T> が中で vector<tree_node<T> > を使っていて, __has_trivial_constructor の引数にできないと怒られる. ということは,spirit も使えないことになるわけだ. VC++8 の人はおとなしく STLport 5.1 を諦めるか, もしくは STLport の中のコンセプトチェックを外すか しないと駄目だと思う.
341 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 16:35:10 ] VS2005なんですがコンパイルに通りません ublas::prod<matrix, vector>なはずなのに ublas::prod<matrix, matrix>と勝手に解釈されます std::vector< boost::numeric::ublas::vector<float > > vector_list; std::transform(vector_list.begin(),vector_list.end() ,vector_list.begin() , std::bind1st( std::ptr_fun( boost::numeric::ublas::prod< boost::numeric::ublas::matrix< float > , boost::numeric::ublas::vector< float > >) ,covariance.covariance));
342 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 21:05:43 ] multi_arrayってコンストラクタ以外で要素数を変更できないのですか?
343 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 02:34:42 ] C++相談室 part54 から飛び火。 pc8.2ch.net/test/read.cgi/tech/1162215248/611-622 boost の導入が却下される理由を教えてください。
344 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 02:50:48 ] >>343 オブジェクトコードにスタンプが入っちゃうから。
345 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 09:31:14 ] まずSTLの導入が却下されてるからな
346 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 10:55:33 ] それって事実上のC++ダメ宣言?
347 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 12:58:06 ] >>343 VS2003でSP1あてないとコンパイル通らないコードがたまにあるから
348 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 13:02:39 ] >>343 コンパイルが遅いからとかw いくらでも理由は考えられるし、わざわざここへチクりに来るような話題とも思えない。
349 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 16:56:47 ] www.boost-consulting.com/ boostって儲かるのかな boostのreviewも裏でなにかありそうなかんじだ GILとvigraの争いもなんか違和感がなくもなかった
350 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 10:17:52 ] STOP! 探偵ごっこ
351 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 18:04:13 ] boost::tokenizer で切り分けた個数を得る方法はありますか? (イテレータでループしてもとめるのではなくて。。)
352 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 18:47:33 ] >>351 tokenizer はイテレータを移動するたびに区切りを探す仕様だから無理。
353 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 18:52:00 ] 個数カウント関係は boost::accumulators の人に要望したら実装してくれるかも
354 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 19:08:11 ] >>350 探偵ごっこじゃなくて vigraからGILに乗り換えるかで悩んでるんだよ boostのreviewとやらが信用できるかどうかが、大きなファクター なんか怪しいって思ってるやつが結構いるんだったら boostのreviewを無視してvigraを使い続ける
355 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 23:52:45 ] vagina
356 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 00:07:40 ] viagra
357 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 01:27:31 ] Caverta で十分。
358 名前:デフォルトの名無しさん [2006/11/24(金) 08:52:34 ] 下の様なエラーが出て困ってます。リビルドすればコンパイルは通る様になるのですが 毎回リビルドするのは大変なので、どうにか解決する方法ってないでしょうか? c:\boost\boost\regex\v4\perl_matcher_common.hpp(734) : fatal error C1001: 内部コンパイラ エラー (コンパイラ ファイル 'msc1.cpp', 行番号 1794) Visual C++ のサポート情報 コマンドを選択してください ヘルプ メニュー、 またはサポート情報のヘルプ ファイルを参照してください コマンド ラインの警告 D4028 : 簡易リビルド時のエラ-です、通常のビルドに戻します 環境: VC++6.0 SP6 Boost 1.33.1
359 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 12:37:19 ] VC6は偽C++だからなぁ・・・
360 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 13:19:08 ] >>359 6.0じゃもう古過ぎてダメですか?
361 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 14:02:04 ] C++じゃないしな VC8EE使った方がいいだろ
362 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:57:13 ] vc8でコンパイル通らないのと組み合わせてる場合はどうしたらいいんだろう コンパイル通らないコードはdllにして読むことにするとかできるのか?
363 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 01:32:12 ] VC8でコンパイル通らない時点でまともなC++じゃない可能性が高いわけだが DLLなどの方法で分離することはもちろん可能。(MSVCRTの衝突に注意)
364 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 16:48:43 ] あんまり関係ないことかも知れないけど、uBLASってなんて読んだらいいの? うぶらす?マイクロブラス?
365 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 18:31:11 ] あっぷれカス
366 名前:デフォルトの名無しさん mailto:sage [2006/11/26(日) 20:01:25 ] >>364 俺は発音しなければならない状況に立たされたことがないので不明
367 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 09:38:25 ] 誰か俺にSFINAEの発音プリーズ
368 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 10:00:39 ] 自分としては「えすふぁいなえ」などと変な読みをしてるけど 他人と口頭でSFINAEについて話したことがないのでどう言っていいかわからん
369 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 10:20:16 ] すふぃなぇ
370 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 10:46:18 ] エス 吹く アナル
371 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:34:46 ] ボーストが標準でついているコンパイラはありませんか??
372 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 12:12:46 ] >>365 uprecus.jp.land.to/wiki/
373 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 12:13:51 ] ,.-─ ─-、─-、 , イ)ィ -─ ──- 、ミヽ ノ /,.-‐'"´ `ヾj ii / Λ ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{ ノ/,/ミ三ニヲ´ ゙、ノi! {V /ミ三二,イ , -─ Yソ レ'/三二彡イ .:ィこラ ;:こラ j{ V;;;::. ;ヲヾ!V ー '′ i ー ' ソ Vニミ( 入 、 r j ,′ ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ ヽ ヽ -''ニニ‐ / | `、 ⌒ ,/ | > ---- r‐'´ ヽ_ | ヽ _ _ 」 ウプレカス [ uBLAS ] ( 西暦一世紀前半 〜 没年不明 )
374 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 02:00:21 ] ublasのsolveで使われるlower_tagやupper_tagはどのような意味があるのですか? ドキュメントからは見つけられませんでした。
375 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 02:16:43 ] >Solves a system of linear equations with triangular form, i.e. A is triangular. とあったので、Aは三角行列でなければならず、そのタイプを示すのがtagでしょうか? もしそうなら結局LU分解しなきゃダメなのであまり使えないですねこれ・・・
376 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 02:34:33 ] atlas::cholesky_factor のように三角行列しかうけつけない関数がある 普通の行列の上半分つかってを三角行列にするときに使うのが upper_tag
377 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 06:42:02 ] >>364 ユーブラスじゃね?
378 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 12:51:52 ] >>377 >>373
379 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 14:39:30 ] Geometry Library ってひょっとして複数の候補があるのか? boost-consulting.com/vault/index.php?PHPSESSID=kpg87708jjfg0ka24en0hgc2m4&direction=0&order=&directory=Math%20-%20Geometry いったいどれを使ったらいいんだ
380 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 19:46:16 ] boost1.33.1をVCEEで使おうと思ってインストールしようとしたのですが失敗してしまいます bjam "-sTOOLS=vc8_0" install とすると ...skipped <@boost!include!boost-1_33_1!boost!wave!util>unput_queue_iterator.hpp for lack of <directory-grist>C:\Boost\include\boost-1_33_1\boost\wave\util... のようなメッセージが大量に出て最後に ...failed updating 2 targets... ...skipped 4805 targets... と表示されて終了してしまいます どうしてでしょうか?どなたか解決策を教えてくださいお願いします
381 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 23:29:29 ] sdkへのパス通して↓でうちはいけた(いま使ったことのある範囲ではだけど >bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install エラーもエラーで長いから憂鬱だよな
382 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 22:51:51 ] >>381 ありがとうございます sdkへのパスとは C:\Program Files\Microsoft Visual Studio 8\SDK のことでしょうか? パスを通すというのは、システム環境変数のpathに追加するということですよね? 色々追加してやってみましたが、結果は変わりませんでした
383 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:15:17 ] www.boost.org/tools/build/v1/vc-8_0-tools.html vsvars32.batを編集する必要がある
384 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 00:48:42 ] む、あいまいかつ適当な書き方して申し訳なかった そのときのメモ見たら set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include してC:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat走らせて bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install したって書いてあった。 set LIB=C:\Program Files\Microsoft Platform SDK\Libはvcvarsallがやってくれたっぽいが 標準でやってるのか自分でbat編集したのかは覚えてない まあ>>383 の通りです
385 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 00:10:04 ] >>383-384 ありがとうございます set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include set LIB=C:\Program Files\Microsoft Platform SDK\Lib bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install とやってみましたが、相変わらず大量のエラーメッセージが出てしまいます 383のリンクを見てみましたが、PlatformSDKが必要ということとvsvars32.batを編集しないといけないということは分かったのですが 英語が苦手なので具体的にどこをどう編集しないといけないのか分かりませんでした 本当にすみません VCEEではなかなか出来ないのでBCB6.0でやってみようと思い、 >1にあるLet's Boostを参考にして↓のようにやりましたが、また同じようなエラーが出てしまいました C:\lib\boost_1_33_1>set PATH="C:\Program Files\Borland\CBuilder6\Bin";%PATH% C:\lib\boost_1_33_1>bjam -sTOOLS=borland --prefix="C:\Program Files\Borland\CBuilder6" install 何でやってもダメということは何か基本的な設定が出来てないのでしょうか?
386 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 01:50:50 ] vcvarsall.batの @set INCLUDE= @set LIB= の部分に;で区切って追加する
387 名前:358 mailto:sage [2006/12/03(日) 07:12:58 ] VC++6.0、IDEも軽くていいんだけどなぁ。 MFCのランタイムも普及してて、Win98以降のOSなら何でも動くし。 でも、そろそろ新しいバージョンに移行した方がいいのかもね… 考えてみれば、8年前の開発環境なんだよね… >6.0
388 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 07:14:27 ] テンプレートの対応もアレだしね。6.0
389 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 18:33:22 ] phoenix::bindがspirit::parseのオーバーロードを解決してくれない・・・ lambda::bindならいけるのに・・・
390 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 22:17:45 ] >>386 ありがとうございます vcvarsall.batには@set INCLUDEと@set LIBがありませんでした vsvars32.batにはあったのでそれを↓のように編集しました @set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;%C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE @set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;C:\Program Files\Microsoft Platform SDK\Lib;%LIB% それから↓のようにコマンドを打ち込んでみましたが、やはり>>380 と同じようなエラーが出ました C:\lib\boost_1_33_1>"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" Setting environment for using Microsoft Visual Studio 2005 x86 tools. C:\lib\boost_1_33_1>bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install VCEEだけでなくBCB6.0でもVC6.0でも失敗しました どうやら私には無理なようです regexだけ↓のコマンドでインストール出来たのでもうこれで一旦諦めます(これはVCEEでもBCB6.0でも出来ました) C:\lib\boost_1_33_1\libs\regex\build>"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" Setting environment for using Microsoft Visual Studio 2005 x86 tools. C:\lib\boost_1_33_1\libs\regex\build>nmake -fvc8 C:\lib\boost_1_33_1\libs\regex\build>nmake -fvc8 install 今度もう少しコマンドプロンプトやBoostの基本を勉強して再挑戦してみます スレ汚ししてすみませんでした それから答えてくれた皆さんありがとうございました
391 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 22:32:02 ] 自分は@setにboostのパスも通してるな 必須なのかは忘れた よくがんばった。もうこれでいいじゃない www.boost-consulting.com/download.html
392 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 15:52:07 ] #include <boost/test/unit_test.hpp> void test() {} boost::unit_test::test_suite* init_unit_test_suite(int, char*[]) { boost::unit_test::test_suite* suite = BOOST_TEST_SUITE("Test suite"); suite->add(BOOST_TEST_CASE(&test)); return suite; } 上記のコードをgcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)で g++ a.cpp -lboost_unit_test_framework-gcc-d によりコンパイルしたところ、 /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start': ../sysdeps/i386/elf/start.S:77: undefined reference to `main' collect2: ld はステータス 1 で終了しました とリンクエラーになってしまいます。 (MS VC++ 8とgcc 3.4.4(cygming special)では正常にコンパイル&リンク&実行出来ました。) -lboost_unit_test_framework-gccにしても、また g++ と a.cpp の間にこれを書いても同様に リンクエラーになってしまいます。 (g++ a.cpp libboost_unit_test_framework-gcc-d.a とすると正常にリンク、実行出来ます) これはgccもしくはboost側の問題でしょうか? それともコンパイラオプションが何か足りないのでしょうか?
393 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 18:33:41 ] www.kmonos.net/alang/boost/classes/test.html これだけでは、boost.testの便利さが今ひとつ理解できない
394 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 19:31:20 ] CPPUNITでいいんじゃね
395 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 21:51:02 ] bjamでいろんなコンパイラ上で一気にテストできる 問題はbjamの使い方がよく分からないこと
396 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 15:24:39 ] scoped_arrayはvectorと違ってソートできない?
397 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 15:47:25 ] >>396 なんで?
398 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 16:40:54 ] begin(),end()が無いから
399 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 16:49:42 ] ポインタ渡せばいいじゃん。 ランダムアクセスイテレータの用件満たしてるよ。
400 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 17:02:05 ] 了解 ありがとう
401 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 17:32:49 ] math.Geometryの下がカオスで試そうという気自体おきない しかしGeometry関係の処理はしたい。 boost以外を探すべきか
402 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 20:01:44 ] >>398 つmake_iterator_range
403 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 21:09:05 ] επιστημη氏ってboostに関して何か書いてたっけ? MFCからSTLに関しては、いろんな所に書き散らかしてるけど
404 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 21:43:46 ] >>403 なんの脈絡もなく突然どうした? スレを間違えたのか? とりあえず、例の翻訳プロジェクトには参加してるみたいだけど。 sourceforge.jp/project/memberlist.php?group_id=428
405 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 07:05:53 ] >いろんな所に書き散らかしてるけど を見て、さらにスレ違いな質問を思いついた。 boost使いってPC系ではどんな雑誌読んでる?情報収集はネットのみ?
406 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 07:18:35 ] 「boost使い」と名乗っていいレベルかどうか自信ないけど、 俺は雑誌は一切読まない。 いや、別に「絶対読まねえぞ」みたいなこだわりがあるわけじゃないけど。
407 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 10:41:12 ] 最近はPC系というかプログラミング系の雑誌自体あんま見かけないしな boost devel や c++.moderated つまみ食いしてた方がよほど有益
408 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 10:49:26 ] 日経ソフトウェアとインターフェースと、あとなんかあったっけ?
409 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 19:31:43 ] 俺もプログラミング系の雑誌は読まんな。 bitとか良い雑誌があった頃が懐かしい。
410 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 21:15:10 ] それこそ boost.spritで遊ぼう! みたいな特集を組むある意味アホな雑誌がでてたら買う
411 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 21:22:51 ] 正規表現特集でboost.regexがちょこっと紹介されるのが関の山だな。
412 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 22:16:53 ] C/C++ Users Journalが合流したDDJとか。 www.ddj.com/dept/cpp/cuj.jhtml
413 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 22:56:30 ] boostってlokiのtypelistに相当するやつあります?
414 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 22:58:44 ] >>413 mpl::list
415 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 23:30:11 ] thx
416 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 00:42:18 ] 拡張子hppって古めかしい気がするのは俺だけ? #include で拡張子なし <boost/shared_ptr> って動きは無いのだろか?
417 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 01:17:54 ] >>416 かつて、標準化委員会は理想に燃えていました。 拡張子などという原始的なもので、 ファイルの種類を表すべきではないという強い意志がありました。 はて、2006年になっても、その理想は実現されそうにないのですが。
418 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 01:31:13 ] どっちでもいいけど、標準C++ライブラリと違うのは気持ち悪い
419 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 02:27:45 ] >>417 そのへんって確か、過ちを認めて今からでも元に戻そうって動きもなかった?
420 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 03:08:53 ] >>419 今後出る標準ライブラリに拡張子をつけられたとしても。 いまある標準ライブラリはそのまま残すしかないでしょ。 たとえこんなものでもね // これはC99のiositreamとの下位互換性のためにあるぜ。 //実体はiostream.hな。 #include <iostream.h>
421 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 03:10:50 ] >>419 それは、たぶんこれだろう。ちょっと違う。 www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#456 "We should accept the fact that we made a serious mistake and rectify it, however belatedly, ..."
422 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 03:11:31 ] 拡張子ないとエヂタとか使うとき後からシンクタック指定するの面倒やん
423 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 07:58:42 ] 俺は、拡張しありでいいが、.cppと.hppはどういうわけだか好きになれない。 .Cと.hにしている。大文字小文字区別しないファイルシステムだと問題の種になることもあるが。
424 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 08:03:12 ] >>423 なんで技術的デメリットを無視してまで理由のはっきりしない好みを優先させるの?
425 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 09:25:24 ] 趣味だから
426 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 09:48:40 ] C++ でしか使えないようなヘッダなのに .h を使うのは嫌いだナ (Cからでも使えるようなヘッダなら .h で問題ない) .cpp / .hpp とか、 .cc / .hh とか、ちゃんと名前が揃っていればまあ良いんじゃないかと
427 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 09:50:51 ] 俺は .h / .cpp だな。 不揃いじゃね? と言われれば、うーん、確かにそうなんだが。
428 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 13:04:07 ] >>427 俺もそれ。hppはなんか嫌い。
429 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 13:05:33 ] >>416 せっかく標準がユーザー側のヘッダとぶつからない配慮してくれてんのに、 同じルールにしたら意味ないじゃん
430 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 17:13:15 ] >>422 #includeで指定するヘッダ名は実際のファイル名である必要はない、少なくとも標準のものは。 たとえばBorland C++では適当な拡張子を付けたファイルをインクルードしている。
431 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 18:23:17 ] >>430 理想と現実は違うよ。
432 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 18:39:42 ] え? 理想の話をしてるんじゃないの?
433 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 20:12:44 ] 理想じゃなくて規格の話だろ
434 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 21:18:39 ] 理想の規格はどうあるべきかという話だよん
435 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 23:34:22 ] という夢を見た
436 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 18:06:28 ] testプログラムを1つ与えると 交差検定も自動でやってくれるようなプログラムがあったはずなのだけど boostの中にはないの?
437 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 19:19:14 ] >>380 いまさら亀レスで悪いんだが、 俺も同じエラーで失敗しとります。 コマンドラインのログ追っかけていたら、 MKDIRコマンドで失敗しとりました。 "MKDIR"が"MKDIR1"になってて、ディレクトリを作れないようです。 最初に stageディレクトリを作れません。→死亡 lack of stage なのでlibs作れません →死亡 で以降すべてエラー。 俺はmsvc6.0なんで>>391 も使えないし・・・ どこを直せばいいか分からぬ、、 誰か助けてorz
438 名前:デフォルトの名無しさん mailto:age [2006/12/15(金) 19:24:24 ] 丸二日スレストってるので僭越ながらageさせて頂きます
439 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 22:17:27 ] vc8はタダなんだから落としてこいよ
440 名前:デフォルトの名無しさん mailto:age [2006/12/15(金) 22:17:45 ] bjamのバージョンを下げたらビルドできました でも最新のでやりたかったです。 誰かエロい人いたら bjamの3.1.13-1 で出来るか試してみてくれませぬか、 3.1.11-1だと上手くいきました。
441 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 22:44:19 ] そこまでしてVC6にしがみつく理由がわからん。
442 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 22:54:37 ] gccもあるし、8にもそのうち乗り換えるさ… つかコンパイラの話しじゃなくて、bjam3.1.13-1が動かなくない? って話しで
443 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 23:16:56 ] プリコンパイル済みヘッダー と boost.testって一緒に使えないのかな
444 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 23:44:45 ] VC6は(今の基準では)C++として腐ってるからBoost向きではない
445 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 23:53:02 ] VC6は2038年問題とかだけでも捨てるべきだろ。 少なくとも業務で使ってるってのならその会社は潰れてしかるべき。 ぜひ潰れて欲しい。
446 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 01:39:05 ] Cとしてしか使わないならVC6最高じゃん
447 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 01:49:43 ] >>466 同感! 最近 STL 使おうって思ってやっと 2005 に切り替えました!
448 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 02:23:20 ] 激しくスレ違いで申し訳ないが… 8だとテンプレートをネスト出来たりするかね? ならば今すぐ買いに行くさ。
449 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 02:34:38 ] するする。今すぐ買いに行け。
450 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 02:36:43 ] これか? template < typename T > struct Foo { template < typename P > static void Bar() ; } ; Foo<int>::Bar<int>() ; あるいはこれか? template < typename T, template<typename, typename> class Container > class Foo { Container< T, std::allocator<T> > cont ; } ; Foo< int, std::vector > FooVec ; どちらもできる……が、後者は、なぜかテンプレートテンプレートパラメータのデフォルト引数が使えない。 //エラー template< template <typename, typename = std::allocator<int> > class Container > class Foo { Container<int> cont ; } ;
451 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 02:39:46 ] まじかよ… 部分特殊化だけかと思ってた… 今すぐ買いに行くわ 確かファミマにあったはず。アカデミックだけど。
452 名前:デフォルトの名無しさん [2006/12/16(土) 02:44:32 ] あ〜、後者ですわ。 デフォルト指定は無理なのかぁ…、 まぁいい機会だし買いに行きま。
453 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 02:44:41 ] >テンプレートテンプレートパラメータのデフォルト引数 そんな言語機能があったなんて! いったいなんのためにあるんだろう。
454 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 03:29:27 ] メタ関数として使えそうなんで用意したけど実際にはいまいち使えなかった、 という感じか?>テンプレートテンプレートパラメータ
455 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 03:47:12 ] いや、テンプレートテンプレートパラメタには意味があると思うんだが、 テンプレートテンプレートパラメタ「の」デフォルト引数ってなかなか出てこない発想じゃないだろうか。 ふつうの関数だと void f(int (*g)(int = 7)){} 不正みたいだし。
456 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 03:50:58 ] 普通に使いますから。 テンプレートクラスでデフォルト引数が使えるのは(allocatorなど)当たり前のことだし、 テンプレートの引数に、テンプレートクラス使えないのは不便で仕方がない。
457 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 06:04:31 ] そこで、boost.preprocessorですよ。
458 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 06:06:57 ] え、VC8でも hoge<hage<int>>; みたいのはできないの? デフォルト引数を定義しなければ使えるってこと?
459 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 06:15:31 ] >>458 シンタックスエラー!
460 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 06:40:06 ] uho!
461 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 06:46:08 ] >>457 preprocessorで何ができると?
462 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 12:19:11 ] Tはテンプレート引数でコンテナ型です。 typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_iterator, typename T::iterator>::type Hoge; typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_pointer, typename T::pointer>::type Hage; typedef typename boost::mpl::if_<boost::is_const<T>, typename T::const_reference, typename T::reference>::type Debu; こういうことをやりたいんですが、もっとシンプルに記述できる方法はないでしょうか?
463 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 06:55:37 ] プリプロセッサを使ってもシンプルにはならないだろうし、読みにくくなるだけかと。 そもそも何でそういうことがしたいのか分からない。 渡されたコンテナがconstでなければ、書き換える。 constであれば書き換えないという、奇妙な関数でも書きたいのだろうか。
464 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 17:28:40 ] >>462 boost::range_result_iterator< std::vector< int > >::type // -> std::vector< int >::iterator boost::range_result_iterator< const std::vector< int > >::type // -> std::vector< int >::const_iterator あとは上のように獲得した iterator 型に boost::iterator_[reference|pointer] を適用
465 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 23:17:11 ] >>464 うわぁ、Boost.Rangeチョー便利ナリ・・・ boost::sizeとかあるし。sizeof(a) / sizeof(a[0])とかしてたのが馬鹿みたいだ。 いいものを教えてもらった、ありがとう。
466 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 08:19:06 ] templateもろくに通らないからVC6から2005に切り替えたよ
467 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 15:00:59 ] 今度はワイド文字ストリームがろくに使えないVC 2005。
468 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 16:09:31 ] VC 2005 SP1で直る・・・はず・・・だといいな・・・
469 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 18:20:48 ] その SP1 では graph library が使えないということらしいが
470 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 18:23:55 ] >>468 直ってないような気がする・・・
471 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 18:28:28 ] いや、気がするんじゃなくて間違いなく直ってないや。
472 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 18:40:36 ] SP1出たんだな
473 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 18:46:01 ] STLPort使うとなぜかは知らないがlocale::globalの後でもimbueが効くようだ。
474 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 21:57:24 ] なあ、boostいじってるC++狂の連中はWebアプリケーションはなにで 書いてるんだ? 俺、JavaもPerlもやる気しねーよ。もっとC++でWebアプリ書くフレーム ワークとか環境とか色々あってもいいのになあとか思うんだが。
475 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 21:59:52 ] boostいじってるC++狂の連中はWebアプリケーションなんてかったるいものは 書かないんじゃないかな
476 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:00:27 ] Perlは確かに使う気しないがJavaなら別にいい
477 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:12:09 ] スレ違いだと思うのでURLだけ ws.apache.org/axis/ja/cpp/lininstall-guide.html www.cs.fsu.edu/~engelen/soap.html www.xlsoft.com/jp/products/roguewave/sourcepro/index.html
478 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:18:51 ] boost::CppOnRailsができるのを待つか
479 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 00:42:34 ] >>474 なんか「柴犬」とか言うtomcatもどきをC++で実装してテストしてるスレがあった希ガス
480 名前:デフォルトの名無しさん [2006/12/19(火) 07:44:46 ] sscanfみたいなのを 正規表現で指定できる関数はあるのでしょうか?
481 名前:450 mailto:sage [2006/12/19(火) 08:04:30 ] SP1いれたら、テンプレートテンプレートパラメータのデフォルト引数が使えるようになっていた。
482 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 14:13:59 ] boost MLに何度か投稿していたら software関係conferenceの Invitation to submit a paper (おそらくSPAMの一種だと思う)がくるようになった。 同種のメールは、自分の専門分野の関連領域でもくるのだが ( inviteされるような仕事してねえのに invite ってなんだよ) software関連のは本当に怪しいのかを見分ける手段がない なにか見分ける方法ないものか
483 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 19:52:06 ] すみません、質問させてください 基本型あるいはユーザ定義型の配列の要素数を返す関数を作ろうとしてるんですが arrayがユーザ定義型の配列であった場合でも /* @ */の処理がコンパイルされるためエラーになってしまいます template <typename T> void count(T array[]){ if(boost::is_pod<T>::value){/* @ */} else{/* A */}} WEBで調べているとboost::enable_ifで解決できそうな予感がしたのですが 自分には次の例がよく理解できません(特に::type*=0の部分) これはどういった理屈で動いているんでしょうか template<typename T> void copy_n( const T* from, int n, T* to, typename enable_if< is_pod<T> >::type* =0 ){/* 省略 */}
484 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 20:09:40 ] >>483 enable_ifやdisable_ifは、関数のオーバーロード解決のルールをトリッキーに使っている。 やりたいことを実現する方法はいくつかある。 たとえばこんな方法。 //false以外、すなわちtrueの場合に呼ばれる template < bool isPod > struct Count_impl { static void do() {/* 1 */} } ; //特殊化、falseの時に呼ばれる template < > struct Count_impl<false> { static void do() {/* 2 */} } ; template < typename T > void count(T array[]) { Count_impl<boost::is_pod<T>::value>::do() ; }
485 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 20:11:15 ] >>483 enable_if<is_pod<T> > には、TがPODならtypeメンバがあり、そうでなければtypeメンバがない。 したがって、TがPODでないとき、typename enable_if<is_pod<T> >::typeは 不正な型であり、SFINAE規則によってこの定義が多重定義の考慮から外される。 結果として、TがPODであるときのみ考慮される定義ができたわけだ。 typename enable_if<is_pod<T> >::typeは、このコンパイル時選択の機構のためだけに 使われているので、インタフェースに影響を与えないようにデフォルト値付きの引数になっている。 ポインタを取っているのは簡潔に0で初期化できるようにだろう。
486 名前:483 mailto:sage [2006/12/19(火) 21:31:23 ] >>484 ,485 レス感謝です おかげさまで理解できました >>484 こういう風にすればenable_ifなしでいけるんですね なんとかそのプログラム理解はできても 自分で書けるようになるまでが大変だ・・ とりあえずこれを参考に頑張ってみます >>485 enable_if< is_pod<T> >::type* =0 ええと、この式の場合だと 組み込み型の場合はtypeメンバが存在するわけですよね そして組み込み型でない場合はtypeがないから定義自体されない それだと* =0はなくても大丈夫なんじゃ?と思ったけど この引数はコンパイル時にifの役割を果たせばよいから省略可能にしたい 省略可能にするには=とデフォルト引数が必要で typeをtype*にすればどんな場合でも0が代入できる うーむ、よく考えられてますね
487 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 22:46:08 ] 個人的には返り値型に使うほうが好き>enable_if
488 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 01:12:34 ] >>482 自分で「おそらくSPAMの一種だと思う」なら、ちゃんと見分けられてるじゃないか。
489 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 03:58:16 ] >>487 コンストラクタだとデフォルト引数として仕掛けるしかないけれどね 逆に引数の数が固定されていて余計なデフォルト引数が仕掛けられない 演算子関数定義だと戻り値型一択になるね
490 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 20:21:16 ] そもそも483が作ろうとしていると言う配列の要素数を返す関数は、 基本型かユーザ定義型かで分けて一体何をするのか気になる。 配列の要素数と言えばそもそもboost::size()で済むような話ではないのか?
491 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 20:32:25 ] >>490 番兵を思いついた。 podな型に対しては、ある値を決めておき、 俺様クラスについては、専用のフラグでも用意しているとか。
492 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 16:05:56 ] boost開発者向けMLに、自分用に作った プログラム(boostの既存libの部品の追加してるだけだけど)、 死蔵するのもったいないから ときどき投稿してたんだけど、 最近、無視されてるっぽい。
493 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 17:41:27 ] boost使いはVS2005にSP1はあてるのかい?
494 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 17:56:40 ] 当たり前だ
495 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 21:36:36 ] >>492 何か不満か? ML に晒したんなら勝手に使ってる奴もいるだろう。 使った人が必ずレスポンスを返すわけでもなし。 死蔵にはならずに済んだんだからいいだろ。
496 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 22:52:25 ] boost.cppll.jp 落ちてる?
497 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 23:29:55 ] ぽいね。俺も繋げない
498 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 11:42:53 ] ublasのatlasへのインターフェイスをbackendと表現してるのだが backendってそういう意味なんだっけ?
499 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 12:01:23 ] まあCORBAとDCOMではproxy/stubが逆転していることですし
500 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 15:15:00 ] >>499 それは主体をどっちに置くかという話から帰着した結果だからあんまり関係ない気が。
501 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 23:08:58 ] atlasは下請けや補完をやるわけだから、 ublasから見ればたくさんあるbackendの一つってことでしょ。
502 名前:デフォルトの名無しさん [2006/12/24(日) 12:39:36 ] boostの日本語ドキュメントプロジェクトって2003年で更新止まってるよね サーバーも落ちてるみたいだけど、誰もメンテナンスしてないの?
503 名前:デフォルトの名無しさん mailto:sage [2006/12/24(日) 17:51:43 ] ublas今試してるんだけど、 VC++2005でboost1.33_1だとsparse_matrixとsparse_vectorは定義されていないと怒られてしまう。 matrix_sparse.hppとvector_sparse.hppはきちんとインクルードしているんだけど、なぜに?
504 名前:デフォルトの名無しさん mailto:sage [2006/12/24(日) 18:41:52 ] しかも、mat[i][j]とかで行列の要素にアクセスするとか、lu_factorizeもコンパイルエラー。なんでやろ・・・。
505 名前:デフォルトの名無しさん mailto:sage [2006/12/24(日) 18:49:16 ] エラーメッセージも張らずに日記かよ。いい加減にしろ
506 名前:デフォルトの名無しさん mailto:sage [2006/12/25(月) 13:27:53 ] >>504 mat[i][j]の書き方はできなくなった 今は mat(i,j)
507 名前:デフォルトの名無しさん mailto:sage [2006/12/25(月) 13:47:21 ] Boost.Python でPythonから呼ぶようにした関数って Cとして呼ぶよりも処理が遅くなったりするの?
508 名前:デフォルトの名無しさん mailto:sage [2006/12/26(火) 16:16:15 ] すみませんが、質問です。 Debian Sarge(EUC-JP)上でBoostのsplitなどをを使いたいのですが、ソースコー ドの文字列をEUC-JPにするとエラーになってしまいます。 #include <boost/algorithm/string.hpp> を含むソースで g++-3.4 -finput-charset=EUC-JP -fexec-charset=EUC-JP test05.cpp -o test05 を実行すると、 /usr/include/boost/function/function_base.hpp:23:25: failure to convert EUC-JP to UTF-8 このようなエラーに。 なお、ソースではwchar_t, wstringを使っています。 ソースをUTF-8に、オプションを-finput-charset=UTF-8 にすると動くように なりますが、やはりこれは不便です。 ソースをEUC-JPのままで使う方法はないでしょうか?
509 名前:デフォルトの名無しさん [2006/12/26(火) 18:55:42 ] age
510 名前:508 mailto:sage [2006/12/26(火) 19:42:26 ] 追記です。 コンパイル時のエラーは、こんな単純なソースでも起こってしまいます。 エラー再現には、ソースにワイド文字リテラルが含まれる必要はありません。 ------------------ #include <boost/algorithm/string.hpp> int main(void) { return 0; } ------------------ g++-3.4 -finput-charset=EUC-JP -fexec-charset=EUC-JP test06.cpp -o test06 ↓ /usr/include/boost/function/function_base.hpp:23:25: failure to convert EUC-JP \to UTF-8 EUC-JPではマルチバイト文字を使えということなのかもしれませんが、せっかく 対応しているのだからワイド文字を使いたいのです。
511 名前:デフォルトの名無しさん mailto:sage [2006/12/26(火) 19:56:55 ] >>510 boost/ref.hppがLatin-1で書かれているのが問題っぽいな。 ASCIIに直すようにお願いする位しか解決策が思いつかないが。
512 名前:508 mailto:sage [2006/12/26(火) 20:20:55 ] >>511 ありがとうございます。 ref.hppの17行目でしょうか?そこを削除しても、やはり同じエラーが出ます。 他に気づいたことは、-finput-charset=utf8 などと書いても、「UTF-8に変換 できない」というエラーになることです。大文字ハイフン入りの「UTF-8」以外 受け付けません。 もしかしたらGCC自体が、テンプレートライブラリがUTF-8以外であることに対応 していないのでしょうか?
513 名前:デフォルトの名無しさん mailto:sage [2006/12/26(火) 20:38:10 ] >>508 この辺を参考に search.gmane.org/?query=windows+unicode+gcc&group=gmane.comp.gcc.devel permalink.gmane.org/gmane.comp.gcc.devel/78542 >>512 インクルードファイルの中に他にも含まれていないか チェック。utility/enable_if.hpp とか $ iconv -l で使用できる文字コードは分かる
514 名前:508 mailto:sage [2006/12/26(火) 21:08:11 ] >>513 ありがとうございます。よく読んでいませんが、結局コードの変換ルールが問 題ということでしょうか。 grep -r Jaakko /usr/include/boost/ これで検索したところ66件ありました。他にもlatin-1の名前はあるかもしれ ません。さすがに直す気が失せました。 とりあえず、コンパイル前にiconvをかけることにします。いずれはUTF-8環境 に移行した方が良さそうです。
515 名前:508 mailto:sage [2006/12/27(水) 00:25:09 ] permalink.gmane.org/gmane.comp.gcc.devel/78542 を読んで思ったのですが、どうやらUTF-8にすれば完全解決というわけではな いようですね。 g++ -finput-charset=EUC-JP こう書くと、GCCはソースファイルを、includeされるヘッダライブラリまです べてEUC-JPだとみなします。そしてそれを libiconv で UTF-8 に変換しよう とします。このとき(ヘッダファイルに)EUC-JPに含まれない文字コード (Latin-1など)があったらエラーになってしまいます。 g++ -finput-charset=UTF-8 (または-finput_charsetの指定なし) こう書くと、GCCはソースファイルを、includeされるヘッダライブラリまです べてUTF-8だとみなします。しかし今度は変換の必要がないので、libiconv は 呼ばれません。ヘッダライブラリも変換されません。 これで通常は問題はなくなるわけです。しかし、 ・ヘッダライブラリのエンコーディングがUTF-8でない。 ・ヘッダライブラリに wcha_tのリテラルがある。 (あまりないでしょうが、)この2つが同時に起こると、ライブラリは正しく 動作しません。 結局、すべてのヘッダファイルがUTF-8で統一されるか、Pythonのように各ソー スファイルにエンコーディングの宣言ができるようにしないと、完全解決とは 言えないようです。いずれも一ユーザにはどうしようもない話ですが。 Boostとあんまり関係なくてすみません。
516 名前:デフォルトの名無しさん [2006/12/27(水) 13:04:16 ] 初心者的質問で申し訳ありません。 >>391 でインストールするとき、最初に default variantsを選んでください って言われて、 Multithred Debug, DLL Multithred, DLL Multithred Multithred, static runtime Multithred, Debug, static runtime Single thred, static runtime Single thred, Debug, static runtime の中から選択させられるんですが、ノーパソ用ペンティアム3(1.13GHz)とノースウッドコアペンティアム4(3.2Ghz) の場合、どれを選べばいいんでしょうか。 マルチスレッデッィングとシングルスレッディング用CPUの違いくらいしか分からないので・・・
517 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 14:35:53 ] Multithred/Single thredはCPUの問題じゃない
518 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 14:36:53 ] boostにはデバッグは特にいらないと思う。かなりでかくなるから。 DLLにするかどうかだけど、初心者ならスタティックでいいと思う。 あとはスレッドを利用するならマルチスレッド、しないならシングルスレッド。 シングルスレッドで速度を追求するならシングルスレッドだけど 通常はマルチスレッドでいいと思う。
519 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 14:37:16 ] thred?
520 名前:518 mailto:sage [2006/12/27(水) 14:37:42 ] 訂正 ×特に ○別に
521 名前:516 [2006/12/27(水) 14:45:12 ] ありがとうございます。 ではとりあえず Multithred, static runtime でインストールして使ってみます。 なお、参考までにお聞きしたいのですが、DLLにするとどういった使い方が可能になるのですか?
522 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 14:49:20 ] templateなlibraryにDLLもくそもないから気にするな。
523 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 15:11:02 ] >>521 DLLの特長はここに書いてある。 e-words.jp/w/DLL.html 必要ならDLLを選ぶといいと思う。
524 名前:デフォルトの名無しさん [2006/12/27(水) 16:19:19 ] vc2005 sp1の現状 std;;wstring s = L"漢字"; // std::wcout << s << std::endl; //←ここをコメントアウトすると何もでなくなる std::wcout.imbue(std::locale("japanese") std::wcout << s << std::endl; //←出る std::locale::global(std::locale("C")); std::wcout << s << std::endl; //←出る よくわかんないけどMSの開発担当者はもっとまともなロケール実装者が来るまで正座な。
525 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 16:22:23 ] boostとは直接関係ないけど、これ直ってないのか。なんのためのSPなんだか('A`)
526 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 20:10:24 ] >>524 とりあえずSTLport使っとくとlocale::globalの後に それぞれimbueすればちゃんと動くらしいよ。 付属のだとそれすら効かない。 std::locale loc("japanese"); std::locale::global(loc); std::wcout.imbue(loc); std::wcout << L"ぶーすと" << std::endl;
527 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 23:15:10 ] ublasでrankは求められなかとですかい? rank求めるのにlu分解は精度の問題で、一般には使われてないとか書いてるけど、 どの程度精度に問題でてくるんだろうね。
528 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 12:41:32 ] ttp://www.page.sannet.ne.jp/d_takahashi/boost/ublas/index.htmlを参考にして ublasで逆行列を求めようとしているのですが、lu_factorizeの呼び出しでコンパイルエラーになります。 エラーメッセージが大量なので、ソースと一緒にアップローダに上げておきます。 ttp://zetubou.mine.nu/itoshiki/nozomu/zetubou3677.zip
529 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 13:06:13 ] 実行時エラーなら出るがコンパイルエラーは出ないな。 VC8SP1 + Boostは11月の頭にCVSから F:\>cl -nologo -EHsc -ID:\Boost inv.cpp inv.cpp F:\>inv.exe Check failed in file D:\Boost\boost/numeric/ublas/triangular.hpp at line 2435: e1 () (n, n) != value_type () This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. F:\>
530 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 15:50:10 ] November 28, 2006 - Function Types Accepted
531 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 19:50:03 ] VC7 でserializationのlib出きへんのやけど なんか必要?
532 名前:528 mailto:sage [2006/12/29(金) 20:29:50 ] boostを1.32.0に入れ替えてみたところコンパイル出来ました。 実行時エラーは、おそらく係数行列を適当に設定したため発生したのだと思います。 係数行列を参考サイトと同じ行列にしたところ、同様の結果が得られました。 ublas使う時だけ1.32.0で行くことにします。ありがとうございました。
533 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 10:46:57 ] >>3 にリンクされてるPOCOって使ってる人いる? 今日落として試してみたんだけど、SampleについてるEchoServerの挙動が 微妙におかしくて…… 原因は一応分かったのだが、英語力が無いからまっとうなバグレポ 送れにゃいよ。
534 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 14:13:46 ] >>533 英語力ないからって言ってると永遠に身につかないよ。 バグレポなら状況を箇条書きにして送るだけでも大丈夫、ただし返信が来たらしらない(w
535 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 14:59:14 ] >>534 そうだよなあ。 とりあえず、がんがって次のようなバグレポを書き込んだ。 意味が通るかどうかは全く自信が無いw Hello. I'm a Japanse, so please forgive my poor English. When I tested "EchoServer" sample, I found that it doesn't send back FIN to the client when the client sends FIN to the "EchoServer", by calling shutdown(). This is because "EchoServer" doesn't call close() function for this socket. Why is that? Poco::Net::StreamSocketImpl is refcounted, and close() is called when it is really destructed. I found that Poco::Net::SocketReactor's member, _pReadableNotification, _pWritableNotification, etc. holds Poco::Net::Socket instance, until next socket event arises. So, until then, refcount remains 1, and close() is never called. In Poco::Net::SocketReactor::run(), member function dispatch() is called for each socket. I think, after that, the socket which is held by _pReadableNotification, etc. must be immediately cleared, so Poco::Net::StreamSocketImpl's refcount will be 0, and close() will be called.
536 名前:デフォルトの名無しさん [2007/01/04(木) 13:26:47 ] boost の program_options で言及されているレスポンスファイル に関する機能って、以前は configuration file って呼ばれていた ものですか?単に呼び方が変わっただけですか? www.boost.org/doc/html/program_options/howto.html#id2715898
537 名前:536 [2007/01/04(木) 13:32:57 ] 1.33.1 のソースを見てみると、 // Additional command line parser which interprets '@something' as a // option "config-file" with the value "something" なんて書いてあるなぁ、前からあった機能なのか。 なんか俺が勘違いしていたみたいです。
538 名前:536 [2007/01/04(木) 13:42:23 ] 追加のオプションをファイルで与えることが出来る multiple source の機能と、コマンドラインそのものを ファイルの形で与える response file の機能を 混同していたようです。
539 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 14:35:43 ] ある大学でresearch programerっていう仕事の公募が出てる research programerていうのはboostの開発してるような人達なのかな
540 名前:536 [2007/01/04(木) 14:42:44 ] >>539 頼まれてシミュレータなどのコードを書く人のことじゃないかなぁ。
541 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 16:05:49 ] >programer programmer
542 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 17:55:53 ] >programmer programer
543 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 19:01:27 ] pugeramer
544 名前:535 mailto:sage [2007/01/05(金) 04:25:51 ] POCOにバグレポ書いたと思ったら、もうFixされたバージョンリリースされてた。 はえー。 拙い英文でもバグレポ書いた甲斐があったわ。 勇気付けてくれた >>534 あんがと。
545 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 11:12:28 ] 英語力がないから>535の意味を掴み切れない_/ ̄|○ #今年は真面目に(系統立てて)勉強するかな……
546 名前:535 mailto:sage [2007/01/05(金) 12:11:30 ] >>545 俺のアホな英文が分からないのは、多分君のせいじゃない。 相手はプログラムを良く理解してるから、クラスやメソッド名などのキーワードを 見て、問題を理解してくれたんだと思う。 今日も POCO を眺めてみたが、std::string ベースなので Path クラスが 日本語名を上手く扱えないという実にありがちな問題が……。 一見すると POCO_WIN32_UTF8 を定義して utf-8 ベースでやってれば 上手く機能しそうにも見えたが、たまにそのまんま std::fstream とかに 渡してるから、やっぱダメだな。 つうかいつになったらWindowsはja_JP.UTF8風なコードページをサポートして くれるんだ。OS内部だけUTF-16化されてたってしょうがないだろうに。
547 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 12:41:48 ] >>546 無理 ttp://blogs.msdn.com/michkap/archive/2007/01/03/1392379.aspx まあ、ここでも言われているけど、 98がラッパでUnicodeをサポートできるように、 UTF-8のラッパをかぶせられないこともない。 どれほどの需要があるのか分からないけど。
548 名前:デフォルトの名無しさん [2007/01/06(土) 09:17:55 ] shared_ptrやweak_ptrのソースを調べてるんだけど、 shared_ptrは内部でweak_ptrを使ってるようだけど、これは何のため なんだろうか。weak_ptrはshared_ptrの循環参照の欠点を克服できる という話を聞いてるんだけど、shared_ptrのなかにすでにweak_ptrが使われてる ということは、もうshared_ptrは循環参照を克服したってことでいいんですか? 違うとしたら、weak_ptrをどう使ってshared_ptrの循環参照を克服できるのか 教えてください。weak_ptrのソースみてみると、なんだかweak_countという 別のカウンタを使っているだけで中身はほとんどshared_ptrと同じように参照カウンタ方式 にみえるんだけど、これで本当に循環参照、解決するんだろうか…?
549 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 10:05:47 ] ttp://www.kmonos.net/alang/boost/ ここのスマートポインタってところ読んでから来いや。
550 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 10:12:40 ] >もうshared_ptrは循環参照を克服したってことでいいんですか? よくない。 weak_countは参照カウンタの参照カウンタとでも言えばいいんだろうか。 struct A { shared_ptr<A> a; } shared_ptr<A> hoge(new A); hoge.a = hoge; struct A { weak_ptr<A> a; } shared_ptr<A> hoge(new A); hoge.a = hoge; この二つでどのように参照カウンタが変化するのか、調べてみるといいよ。
551 名前:デフォルトの名無しさん [2007/01/06(土) 11:16:45 ] >550 shared_ptrはカウンタ増えるけど、 weak_ptrはカウンタ増えないね。weak_ptrのカウンタはなぜ増えない?? 代入で増えるように定義されてるように見えたんだけど >549 いちおう読みました
552 名前:デフォルトの名無しさん [2007/01/06(土) 13:50:29 ] 循環参照が置きるshared_ptrの相互参照がある場合、 相互参照の片方をweak_ptrに置き換えて循環参照が解決できる、 という理解でよろしいんでしょうか、ご教授ください
553 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 13:51:53 ] そんな事、人に訊かんとわかんないもんかね。
554 名前:デフォルトの名無しさん [2007/01/06(土) 14:34:16 ] >553 これって実は誰でも知ってること??
555 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 14:36:23 ] >相互参照の片方をweak_ptrに置き換えて循環参照が解決できる この説明だと片方を単にポインタに置き換えるだけで良いじゃないか,という反論が 想定され, weak_ptr の本質的な利点と特徴を説明できていないような?
556 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 15:22:57 ] >>554 皆知ってるかは知らんが、自分で結論出せないのなら 完全に理解できてないってことだ。
557 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 15:45:06 ] そりゃ完全に理解できてないから訊いてるんだろ。
558 名前:デフォルトの名無しさん [2007/01/06(土) 15:48:06 ] >555 単にポインタに置き換えるだけだと、自動で消えないからマズいんですよね?? weak_ptrなら、相互参照の片方が消えたら自分も消えるんでウマいこと いくってことでOK? >556 結論を出してみたけど間違ってたまま覚えてたらまずいんで 合ってるのかどうかだけでも教えてください
559 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 03:14:24 ] boostのUnitTestってCppUnitと比べてどんな感じですか?
560 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 03:26:17 ] マグロとイカフライみたいな感じかな
561 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 03:32:22 ] >>560 ありがとうございました
562 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 05:51:31 ] ちょww
563 名前:デフォルトの名無しさん [2007/01/07(日) 13:58:09 ] weak_ptrにいれたshared_ptrのカウントと、weak_ptrのカウントが 同じカウントになるような気がする。 つまりshared_ptrが消えるときにweak_ptrのカウントもゼロになって 同時に消える仕掛けになってると考えていいんでしょうか先生?
564 名前:デフォルトの名無しさん [2007/01/07(日) 15:19:12 ] ちがった・・・入ってるshared_ptrが消えてもweak_ptrのカウントは1残った… それまではカウント同じなのになぜ??
565 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 20:29:47 ] >>558 >単にポインタに置き換えるだけだと、自動で消えないからマズいんですよね?? いや, weak_ptr の機能は参照先のオブジェクトの生存管理と直接は無関係です. 普通のポインタで参照していようが, weak_ptr で参照していようが, shared_ptr による参照カウントが0になればそのオブジェクトは消えます. 単なるポインタと比較した場合の weak_ptr の利点は, -参照先のオブジェクトが生存しているかどうかを調べることができて,かつ -shared_ptr に格上げできる ことです. いずれにせよ, shared_ptr による循環参照の問題の解決するにあたって, 必ず weak_ptr の機能が必要になるわけではないです. 単に weak_ptr の機能を理解しようとするだけなら, 循環参照の問題はとりあえず脇に置いておいた方が良いような気がします.
566 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 20:46:53 ] >>563 shared_ptr の実装は,参照カウントによって管理されるオブジェクト (A とします) と独立して,新たにフリーストア (ヒープ) 上に 参照カウント用のオブジェクト (X とします) を生成します. X は, A の参照カウントと独立して自分自身の参照カウントも持っていて, 独立した2つの参照カウントを持っているイメージになります. shared_ptr が1つ作られるごとに A の参照カウントと X の参照カウント両方が 1つ増やされ, shared_ptr が1つ破壊されるごとに A の参照カウントと X の参照カウント両方が1つ減らされます. weak_ptr が1つ作られるごとに X の参照カウントのみが増やされ, weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます. A の参照カウントが0になれば A を delete します. しかし, X の参照カウントが0になっていなければ X は破壊されません. 最終的に全ての shared_ptr と weak_ptr が存在しなくなった時点で, X の参照カウントは0になります.この時点で X は delete されます (自殺します). 以上が, shared_ptr と weak_ptr の実装面での動作です.
567 名前:デフォルトの名無しさん [2007/01/08(月) 03:42:00 ] >>566 うそ〜ん??shared_ptrはカウントを二種類持ってるってこと? あ、sp_countと内部のweak_ptrの二種類のことを言ってる??
568 名前:デフォルトの名無しさん [2007/01/08(月) 04:04:00 ] >weak_ptr が1つ作られるごとに X の参照カウントのみが増やされ, >weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます. shared_ptr<A> hoge(new A); cout << hoge.use_count() << endl; weak_ptr<A> hogehoge(hoge); cout << hoge.use_count() << endl; cout << hogehoge.use_count() << endl; 試してみたらどっちも増えなかったよ
569 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 10:57:47 ] >>568 weak_ptrのuse_countはweak_countを返すわけじゃないよ。 ドキュメント読め。
570 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 18:09:37 ] Boost.Timeseries Boost.Accumrator は結局アクセプトされたの?
571 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 13:46:37 ] オブジェクトを参照している最後の shared_ptr が破棄されるとき、 weak_ptr の有無にかかわらず、そのオブジェクトは削除される。 ただし、オブジェクトを参照する weak_ptr が存在していた場合、 参照カウントを保持する sp_counted_impl_pd は削除されない。 (weak_ptr と shared_ptr すべてが破棄されないと削除されない為) weak_ptr からポインタ参照を行いたい場合、 必ずロックして shared_ptr を取得するような設計になってるけど、 上記仕組みのおかげで、たとえ shared_ptr が存在しない状態でも オブジェクトが破棄されていることが分かり、エラーを返すことが出来る。
572 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 16:13:31 ] Statistical Distributions and Mathematical Special Functions のレビューコメントが厳しいのばっかりなのはなんで? 最初 Boost.Mathとか名前ついてたときは、 ちょっと広すぎな名前だとは思ったけど
573 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 16:49:03 ] >>572 >Statistical Distributions and Mathematical Special Functions 興味あるんだけどどのへん見ればいいの? ポインティングよろしく
574 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 17:14:44 ] boost-consulting.com/vault/index.php?PHPSESSID=bq352onkg7ogdbu4lundegolg1&direction=0&order=&directory=Math%20-%20Numerics の math-toolkit-code.tar.bz2
575 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 17:25:00 ] >>574 Thanks!
576 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 18:12:22 ] >>548-571 通りすがりだけど、このやり取りで、weak_ptrがすっごくよく分かった! 日本語でこれだけちゃんとした説明はどこにもないと思う。ありがとう!
577 名前:デフォルトの名無しさん [2007/01/10(水) 21:17:34 ] shared_ptrなんだけど、中にいれるオブジェクトが消えると カウントが減りますよね。 でも、中のオブジェクトが消えたということを、shared_ptrはどうやって知るんですか? 代入演算子で上書きされたときについては、代入演算子の多重定義で 上書きされたほうをデクリメントしてるのは分かるんだけど、 スコープを抜けたときとかはshared_ptrには分からんのでは? リアルタイムにオブジェクトが生きてるかどうかを監視してるわけでもないのに、 スコープ抜けてオブジェクトが自然消滅したときにもちゃんとカウントが 減ってるのって不思議すぎる。これ分かる人いる?
578 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 21:25:23 ] >中にいれるオブジェクトが消える >代入演算子で上書きされたとき >オブジェクトが生きてるかどうか この辺が果てしなく意味不明。 >>577 はshared_ptrを全く理解していないようだ。
579 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 21:55:07 ] ソース読めばわかるよ
580 名前:デフォルトの名無しさん mailto:sage [2007/01/10(水) 21:57:28 ] >577 デストラクタ
581 名前:デフォルトの名無しさん [2007/01/11(木) 07:38:26 ] shared_ptr<A> hoge(new A); int i = 1; while(i--){ shared_ptr<A> hogehoge(new A); hoge = hogehoge; cout << hoge.use_count() << endl; } cout << hoge.use_count() << endl; こういう状態のとき、二番目のhoge.use_count()のときにはカウントが 一番目より一つ減るでしょ。それをhogeのカウンタはどうやって把握したの? ってことを聞きたかったんです。 カウンタのデクリメントについては、ソースを読めば代入演算子の 部分で、代入元をインクリメントして代入先をデクリメントするってことが 書いてあるけど、代入したオブジェクトそのものが上のコードみたいに スコープはずれて消えたときにデクリメントする処理なんて書いてないな、 と思ったんです。 >>580 代入元のデストラクタですか? どうやって代入元のデストラクタで、shared_ptrのカウントを下げてるか分かりますか??
582 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 08:09:28 ] >>581 カウンタもshared_ptrが保持するポインタと同じく共有されるよ。 shared_ptr<A> hogehoge(new A); //カウント1 hoge = hogehoge; //カウント2 } //hogehogeの破棄によってカウント1 その後hogeの破棄時にカウントが0になるのでdeleteが呼ばれる。
583 名前:デフォルトの名無しさん [2007/01/11(木) 09:19:43 ] 初歩的な質問で申し訳ないけれど、 shared_ptrはコンストラクタではいろんなオブジェクトを受け付けるけど 代入はスマートポインタしか受け付けないってのは正しい? いちど初期化してしまうと、 あとから別のオブジェクトを入れるには他のshared_ptrにいれてから 本当に入れたいshared_ptrにそのshared_ptrを代入するしかありませんか?
584 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 09:41:04 ] >>581 もうね、 > int i = 1 > while(i--){ の時点でC++理解してなさすぎ。 { shared_ptr<A> hogehoge(new A); hoge = hogehoge; cout << hoge.use_count() << endl; } これだけでスコープ限定できるの。 boostを理解しようなんて百年早い。 基礎からやり直しな。
585 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 09:55:44 ] C++っていうかC
586 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 10:01:40 ] >>584 んなどうでもいいことよりも少しは本質的な話をしたらどう
587 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 10:03:37 ] do{ hogehoge(); }while(0); hogehoge()は実行されますか?
588 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 10:28:53 ] >>587 それは別のスレで質問したらいいと思う
589 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 10:45:07 ] >>583 reset すれば?
590 名前:デフォルトの名無しさん [2007/01/11(木) 10:47:47 ] お前らと仲良くなりたくて、もっと weak_ptr について理解を 深めようと思ったが、頭が悪すぎて理解できなかった。 なんかやばそうだから循環参照が起きないように気をつけよう、 その程度の理解な俺が作っているプログラムを使わされている やつカワイソス。
591 名前:デフォルトの名無しさん [2007/01/11(木) 10:49:54 ] ちなみに俺の理解では weak_ptr は参照カウントを増減させないので たとえ weak_ptr で参照されていたとしても実体が delete されて いるかもしれん。だから weak_ptr の参照先が生きてるかどうか ちゃんとチェックしてから使おうね、ってことなんだが。
592 名前:デフォルトの名無しさん [2007/01/11(木) 10:51:18 ] 生のポインタじゃなくて weak_ptr を使う理由は、 参照先のオブジェクトの生死を追跡することが出来るから。 えっと、ほかにうれしさある?
593 名前:デフォルトの名無しさん [2007/01/11(木) 11:09:46 ] >>592 おれもよく分からんのだけど、読んだりしらべたりした感じだと 循環参照でカウントが不当に上がってしまわないように shared_ptrの相互参照は片方をweak_ptrにしないと駄目ってことも あるんじゃないだろうか。違ってたらまた指摘よろ
594 名前:デフォルトの名無しさん [2007/01/11(木) 11:11:17 ] >>589 reset()か。ちょっと試してみる
595 名前:デフォルトの名無しさん [2007/01/11(木) 11:24:52 ] >>589 reset()した後に、そのshared_ptrをどうやって再利用したらいいんだろう。
596 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 11:57:10 ] shared_ptrみたいな簡単な部類すら理解できないのに boostを使おうなんて100年早い
597 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 12:08:07 ] >>596 それでも BGL は便利にがんがんつかわせてもらってます ><
598 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 16:02:41 ] >>595 shared_ptr p1( object1 ); p1.reset( object2 ); shared_ptr のインターフェイス定義くらい読んでおけよ。
599 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 16:28:02 ] >>592 他に,対象のオブジェクトを参照している最中に (そのオブジェクトを指している shared_ptr が全て消えることで) 突然そのオブジェクトが死んでしまうような事態を回避することができます. (この問題はマルチスレッドプログラムで特に顕著だと思いますけれど, シングルスレッドプログラムでも論理的にはありえるケースです) void process( weak_ptr< Obj > wp ) { if( shared_ptr< Obj > p = wp.lock() ){ // このスコープ内では, (たとえば他の実行スレッドの動作によって) // p の指しているオブジェクトが削除されるようなことはない } else{ // wp が指しているオブジェクトが死んでいる場合. // ここでどうするかは何を実装するかによります. // wp の参照先が常に生存していることが不変条件ならば, // 571さんの書いているように論理エラーを通知する (例外を送出する) ことに // なるでしょうし,参照先のオブジェクトが死んでいることを検出して // 他のアクションを取るようなことも,場合によっては想定されます. } }
600 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 16:30:05 ] また,自身は shared_ptr を必要としないけれど,他の誰かに shared_ptr を渡すような要求がある場合に weak_ptr が必要になります. // 自身は B のオブジェクトへの (弱い) 参照を持っているだけで良いが, // B のオブジェクトへの shared_ptr を返すインタフェイスが必要なクラス class A{ public: shared_ptr< B > getB() const{ return boost::shared_ptr< B >( p_ ); } private: weak_ptr< B > p_; }; あと weak_ptr の使い方として典型的なのが,参照先のオブジェクトが 死んでいてもかまわないような場合です. proxy (特にキャッシュの実装) や observer などの実装で有用な使い方があるかと思います.
601 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 17:17:34 ] shared_ptr はソースはそんなに複雑ではないわりに、 enable_shared_from_this や、weak_ptr、shared_ptr<void>、カスタム削除子 への対応など 細かいところでさまざまな工夫が施されているから、一度ソースに目を通しておくと勉強になる。
602 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 19:49:50 ] 削除子は勉強になったなぁ
603 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 20:18:15 ] 今回の人の場合、ソース読むよりスマートポインタのことが書かれた 適当な本読んだほうがよくねえか? いやおまいらが親切なのはよくわかったけどさ
604 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 20:31:23 ] カウンタを共有するのがポイント
605 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 20:56:40 ] >>603 >適当な本読んだほうがよくねえか? そういう本ある?自分は見たことないんだけれど
606 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 21:08:05 ] 超定番ながらModern C++ Designじゃないかね?
607 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 22:49:52 ] multi_array<double,3> じゃなくて int ndim=3; multi_array<double> a(ndim) みたいな多次元配列の宣言の仕方できないのでしょうか? ndimをプログラム中で変えたいのです
608 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 09:59:32 ] 多次元配列の大きさを動的に決める方法なかったみたいなので std::map< std::vector<double>, double> m で代用しました。速度で問題でそうな雰囲気もするけど、しかたないかな・・・
609 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 11:07:32 ] >>608 ふつうstd::vector<<std::vector<double> >じゃない?
610 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 11:09:46 ] >>608 スレ違いになるが、一次元配列を(動的に)確保して、擬似多次元アクセス関数を作った方が善くないか?
611 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 11:32:19 ] >>606 boost::shared_ptr を理解する上で Modern C++ Design はどうなんですかね? あれはスマートポインタについては,削除子による不完全型への対応とか クロス DLL 問題などの突っ込んだ議論は載っていなかったように思いますし, それに boost::shared_ptr の設計思想は, MC++D の一つの柱である 「ポリシーに基づく設計」のそれとは,アンチテーゼの関係にすらあるように思いますし.
612 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 15:50:59 ] >>608 …代用できるの?
613 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 21:54:17 ] どうみてもコンパイルエラーです。本当にありがとうございました。
614 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 23:21:36 ] >>611 標準C++ライブラリ(背表紙赤い奴)には auto_ptr の詳しい説明と 簡単なカウント式スマポの実装例があったような あとは More Effective C++ とか?
615 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 10:15:05 ] 「C++再考」のハンドルクラスの実装例なんか、どうっすかね?
616 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 17:01:38 ] boost.accumulators いじってるんだけど、数値計算メインの人が MPL勉強するのはちょっとしんどいんじゃないかと思うんだ
617 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 00:27:28 ] boostのヘッダーをインクルードすると、 バカみたいにコンパイル時間がかかるのですが、 メモリー増設すれば少しは早くなるのでしょうか? Pentium M 17Ghz Mem 500M VS2005 OS:XP です コンパイルオプションをいじれば少しは早くなるのでしょうか?
618 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 00:30:17 ] CPUを速くしろ、と言おうと思ったが十分速いみたいだw
619 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 00:40:24 ] プリコンパイル済みヘッダ使えば多少はマシになんじゃない 17GHzもあるとどうかわからんけどw
620 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 00:46:42 ] 1.7Ghzの間違いでした コンパイル中に、やたらとディスクアクセスする音が聞こえるので ひょっとして500Mで足らないのかと思ったのですが、 そうでもないのですか?
621 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 01:12:45 ] そりゃヘッダ含めソースコードが置かれているのはディスクの中だからさ。
622 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 01:13:40 ] 環境による。XPと開発環境以外何も入っていないのならspirit使わなければ500MBでも十分。 まあ500MBなんて半端なメモリ容量のPCは相当特殊だろうから俺の意見は参考にならんだろう。 512MBからビデオメモリ用に12MB引っ張ってくようなキモイ統合チップセットは聞いたことないし。
623 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 10:43:29 ] mplとかlambda使うならプリコンパイル済みヘッダは必須だな
624 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 10:51:49 ] テンプレートってコンパイル時まで型が決まらないからテンプレートなのに プリコンパイルの効果あるの? それとも全部のパターン分インスタンシエイトしちゃうとか?
625 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 13:01:41 ] >>624 2回目以降のコンパイル時には効果絶大だろ。 PCH が無いと、一度インスタンス化した型でもソースファイルが違うと もう一度コンパイルしなきゃいけないし。
626 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 13:33:11 ] >>624 プリコンパイルっても別にオブジェクトコード吐くわけじゃなくて、 プリプロセッサ通して構文解析かけて、コンパイラの内部形式に変換しとく程度でも充分効果あるだろ。
627 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 14:06:43 ] いちいち stfafx.{cpp|h} みたいなのを作らないと いけないのがめんどうだよな。hdrstop とかも指定せずに、 臨機応変にやってくれればいいのに。 って無茶か。
628 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 14:23:58 ] boost::serialization のシリアライズ先は テキスト/バイナリ/XML なんだけど、 吐き出したデータを他の言語処理系から 読みたいときには XML しかないかな? 大量のデータを他の処理系とやりとりするときって、 やっぱり今まで通り独自形式で吐くしかないのかなぁ。 いっそのこと RDBMS のテーブルに吐き出してくれたらいいのに。 って、やっぱ自分で書き出すしかないか。
629 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 14:26:16 ] >>627 普通にcc foo.hするだけだろ。
630 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 21:42:08 ] RDBMSはランダムアクセスは早いがシーケンシャルが遅い。 そのうえ更新頻度が高いとシステムダウンする勢いでCPU負荷を上げ、 リソースを占有してしまう。
631 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:02:00 ] 素直にXMLでいいや・・・ ところで、当たり前かも知れないけど serialization って deserialization の方がコスト高いよね。 パースにかかるコストが高いんだろうけど。
632 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:40:36 ] 軽く作ればパースはたいしたことはない。 普通の言語と違って構文がスゲー単純だから。 字句はDFAを使うとかすればいいかもしれない。
633 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 22:41:53 ] 追記。たとえ重いパーサであってもRDBMSのODBCなどの オーバーヘッドに比べれば屁の河童。
634 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 12:25:46 ] 現在のバージョンの boost::serialization って、 特に XML にシリアライズする場合には浮動小数点数の NaN が正しく扱われないんだな。 ちょっとカナシス。
635 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 02:26:24 ] 浮動小数点といえば、IEEE754はそろそろバージョンうpじゃなかったか
636 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 11:32:56 ] boost.decimal みたいなライブラリがほしいなぁ。
637 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 11:43:43 ] .NETはDecimal定数が扱えるのがぶっちゃけめちゃくちゃ便利だな。 複素数やリストもそうだけど、定数やリテラルとして使えるかどうかって 結局使い勝手に格段の差が出来ちまうな。
638 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 14:32:51 ] >>635 kwsk
639 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 15:25:16 ] >>638 ttp://ja.wikipedia.org/wiki/IEEE_754r
640 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 15:33:30 ] >>639 thx
641 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 00:56:43 ] tuple と lambda を使ってみてたんだけど、 bind(&get<0>, _1); って式が通らないんだが……。 返り型の指定してもダメだし、ドキュメントいくら読んでもさっぱりわからない。 誰か教えてくれないだろうか……(´・ω・`)
642 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 01:00:06 ] 質問です。 クラスAとクラスBがあるとしてshared_ptrで相互参照するのはNGというのを最近知りました。 すると、相互参照したい場合は class A{ weak_ptr<B> b; } class B{ shared_ptr<A> a; } とすれば良いのでしょうか。ちなみにAは一つしか存在しないBの管理クラスで、Bは複数存在する管理されるクラスなのですが、 その場合はこのように管理される側が管理する側をshared_ptrで参照して、管理する側が管理される側をweak_ptrで保持するのが良いのでしょうか。 あとscoped_ptrというのもあるようで、それぞれどういう時に利用すれば良いのかまだいまいち掴めません。
643 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 06:57:25 ] >>641 getは設計が古くなっている。 戻り値指定なしでもできるが長くなるのでこんな感じで template<typename Result, int i> struct get { /**/ typedef Result result_type; /**/ template<typename Tuple> /**/ Result operator()(Tuple& t) const /**/ { return boost::get<i>(t); } }; bind(get<double, 0>(), _1);
644 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 07:27:37 ] >>642 各オブジェクトの寿命を考えてみたらいいと思うよ。 あと、weak_ptrはオブジェクトを参照するときに 一時的なshared_ptrを作成するのでコストがかかるね。 scoped_ptr, scoped_arrayは、受け取ったポインタを 自分の寿命が切れるときにdeleteするだけのポインタクラス。 C++の仕様がわかっていれば使い道はいろいろ。
645 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 14:15:52 ] で、いつ標準化されるんですかね。
646 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 00:52:42 ] >>643 おお、ありがとう。 やっぱり戻り値の型が判別できないのが問題なのかな? 色々いじりつつ、もう一度 lambda の sig を読んでみたら、今度はちょっと分かった気が。 template <int i> struct get { /**/ template <class Tuple> /**/ typename boost::tuples::element<i, Tuple>::type operator()(Tuple& t) const { /******/ return boost::get<i>(t); /**/ } /**/ template <class Args> /**/ class sig { /******/ typedef typename boost::tuples::element<1, Args>::type Tuple; /******/ typedef typename boost::tuples::element<i, Tuple>::type Result; /**/ public: /******/ typedef typename boost::remove_cv<Result>::type type; /**/ }; }; bind(get<0>(), _1); ってことで、こう書いたらとりあえず行けたんだが、こんな感じでいいのかな? もっといいやり方があったりするんだろうか。 しかし、関数オブジェクトならこれでいい(?)けど、テンプレート関数には sig は使えないよね。 ということは、関数の場合はテンプレート引数を全部指定しないとダメってことかな。 いや、でも、boost::get<> のテンプレート引数全部指定してもダメだったし、キャストしてもムリだったような。 なんかまたよくわからなくなってきた…(´・ω・`)
647 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 11:19:05 ] 引数指定が間違ってるんだろう。consとかいるぞ そもそもgetのシグニチャーは公開されてないと思われるので書いてはいけない。 要は君の::getが主役で、boost::getはシンタックスシュガーだ 関数オブジェクトがつねに偉いのだ
648 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 20:32:31 ] bindで結合されたオブジェクトをfor_eachで適用するとき,適用されたオブジェクトを取り出すには for_eachの結果を何に代入すればいいのでしょうか? struct fn1 { double sum; void operator()(double &t ) {sum += t;} } fn1.sum=0; 何に代入したらオブジェクトfn1を取り出せる? =for_each(ar.begin(),ar.end(), boost::bind( fn1, boost::bind(fn2,_1 )) ); 代入しないと fn1.sum==0 となる
649 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 20:41:39 ] >>648 bind() された関数オブジェクトの型は決められていないから、無理。 かわりに、結果の書き込み先を参照で持たせるのがいいんじゃない? 総和なら std::accumulate() 使えばいいんだけどね。 ソース貼るならコンパイルできるかどうか見直せよ。
650 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 20:48:45 ] boost::bind(boost::ref(fn1),
651 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 20:52:54 ] >>650 できました 感謝
652 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 01:40:45 ] lambda のtestコード algorithm_test.cpp がMSVC8でコンパイル通らない
653 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 03:06:39 ] >>649 ←恥ずかしい人ハケン
654 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 06:14:33 ] よかったね。毎日が発見の連続だね。
655 名前:649 mailto:sage [2007/01/22(月) 07:01:48 ] ん?何か変なこと言ったか?
656 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 16:11:33 ] みなさん、boost::FileSystemって使ってます? 日本語対応してないとかmingwで一部テストがエラーとか、ちょっと使うのに二の足踏んでます。 でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。
657 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 16:39:05 ] >> でも移植性のある他の代替選択肢もなさそうだしなぁ・・・。 boost以外のポータブルなライブラリを使えばよいのでは。 ファイルシステム関連でMBCS/WCSに対応してないって、実用上論外だと思うが。 Shift_JIS環境では使い物にならないし、Win32のFindFirstFileA()って パス長に思いっきり制限あるし。
658 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:16:19 ] CVSから1.34拾ってこい。
659 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:47:54 ] がらっと変わってるよね 念願の basic_path 化とか他盛りだくさん boost.cvs.sourceforge.net/*checkout*/boost/boost/libs/filesystem/doc/index.htm?pathrev=RC_1_34_0
660 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 19:35:35 ] 1.34 早くリリースされないかな?
661 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:28:32 ] 1.35は大変なことになるというか、もう別の言語というか Fusion, MPI, Asio, Interprocessなどなど ライブラリに関しては、標準が何かするべきではないと思う 標準は、発表の場を提供することに予算を使うべきだ。 そして、その場所を標準として定義すべきだ(とか言ってしまおう) 実際stlportが泥を被っているわけだしな BoostがなければC++は死んでたよ
662 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:11:32 ] >>661 すまんが言いたいことがよくわからん。 もうちょっと具体的 and/or 他人に理解できるようにお願い。
663 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 22:40:02 ] signalを関数objectとしてfor_eachに渡す方法はないのでしょうか? struct obj1 { void operator()(double &t) const {std::cout << "obj1:" << t << " " ;} }; struct obj2 { void operator()(double &t) const {std::cout << "obj2:" << t << " " ;} }; boost::signal1< void ,double> sig; sig.connect(obj1()); sig.connect(obj2()); std::vector<double > ar; std::for_each(ar.begin(),ar.end(),sig) err sigのプライベートメンバーにアクセスできません となってfor_eachに渡せません 単にobj1,2を両方使いたいだけなんだけど
664 名前:663 mailto:sage [2007/01/22(月) 22:56:26 ] 自己解決しました std::for_each(ar.begin(),ar.end(),boost::bind<void>(boost::ref(sig), _1)); でできました
665 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 09:21:05 ] gil::transform_channels(pixel1,pixel2,pixel3, ( 1.0/(boost::lambda::_1 - boost::lambda::_2) ) ); がコンパイルエラーになるのですが、 何か見落としているのでしょうか?
666 名前:665 mailto:sage [2007/01/24(水) 09:51:28 ] エラーの原因 gil::transform_channels(pixel1, pixel2, pixel3 を使ってるはずが lambdaを使ったとたん gil::transform_channels(const pixel1,const pixel2, pixel3 に入れ替わってしまうことが原因のようです
667 名前:665 mailto:sage [2007/01/24(水) 09:52:00 ] gil::transform_channels(pixel1,pixel2,pixel3, std::plus<double>() ); とするとコンパイルは通ります
668 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 10:50:48 ] MSVC++7.1, boost1.33.1の環境です。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3506.txt のコードを実行すると、自分の環境では boost::regex_search()で例外が発生してしまいます。 ("Memory exhausted"). これはboost:regexのバグでしょうか。対処方法はありますか。 別にやっていること自体は大したことでは無いはずです。 (このパターンはこの入力に対してはマッチしません)。 C#, Java, JScript, ICU, 鬼車, 等々で、全く同じ正規表現と入力を用いて 同等のパターンマッチを試みても、何の問題も発生しないことは確認済みです。
669 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:43:19 ] そんなことより文章のほうに目がいった
670 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 13:00:18 ] エロかとおもったら三四郎じゃないすか
671 名前:デフォルトの名無しさん [2007/01/24(水) 22:55:12 ] boost のヘッダは <boost/...hpp> と "boost/...hpp" と、どちらがお勧めですか?
672 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 23:14:27 ] 後者は書かないことをすすめる
673 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 23:20:45 ] >>672 なんで? <...> は標準ヘッダでしょ? boost は標準じゃないから "..." だと思うよ。
674 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 00:02:55 ] >>673 くだすれC言語(初心者用) pc10.2ch.net/test/read.cgi/tech/1153542424/
675 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 00:03:34 ] >>673 <>と""の違いは、ファイル探索順の違いしかないと思ったが。
676 名前:668 mailto:sage [2007/01/25(木) 00:05:11 ] えーと、つまり俺の問題は俺の環境のみで起きるのであって、そんなもん 知るかヴォケ、悔しかったらboost::regexなんぞに頼らず テメェがDFAとかNFAとか書きやがれ。 ということでよろしいでしょうか。 このタイプの正規表現で、入力量の大きい時にコケる、という印象なのですが。
677 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 00:06:17 ] 個人的にはプロジェクト内のものは " "、プロジェクト外のものは < > にしてる。 つまり <boost/....hpp> 派だな。
678 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 00:08:08 ] >>676 君のプログラムを試したわけはないが VC7 ってとこにちょっと引っ掛かる。 可能であれば VC8 とか cygwin/mingw とかで試してみなはれ。
679 名前:668 mailto:sage [2007/01/25(木) 00:13:15 ] >>678 VC8は持ってないんすよ。 localeまわりでstd::wcoutが腐るとかfstream::open()が上手くいかねーとか 腐った風評しか聞きませんので、移行するとしても二の足を踏んでしまいますが。 VC7.1をboostはサポートしていないのですか?
680 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 00:16:42 ] VC8でも同じ例外発生したよん。
681 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 02:33:59 ] bindが必要とするresult_typeを sig templateで代用することはできないのでしょうか?
682 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 06:33:13 ] MPLで次元解析する方法みて感動したけど、 いざ自分の問題で使おうと思っても、使いどころが微妙 いり込んだ type の木構造でも使わない限り enable_ifの延長としてしか使えない
683 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:40:23 ] boost::bindを boost::lambda::bind に変えたら挙動が違う protectで囲ってあるところを呼んだり呼ばないで落ちたり どっちのbinsを使うのが推奨なの?
684 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:47:54 ] >>668 の問題に関して: capslockabcjp.kitunebi.com/faq.html boostのバグ? スレでの指摘により、boostの動作が怪しいという指摘がありました。 boost1.33および1.33.1で/\1/を使用した場合に落ちることを確認しました。
685 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:43:57 ] boostがC++でC++のコンパイラ作るのはいつ?
686 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 20:43:41 ] spiritでC++のコンパイラ書けってことか
687 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 03:04:59 ] Boostのおなじみの形式のドキュメント こんなやつをdoxgenみたいに自動生成するツールってないのかな boost-sandbox.sourceforge.net/libs/time_series/doc/html/index.html
688 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:49:09 ] ヘッダーファイルの置き場所について教えてください 既存のboostの拡張として boost/X/Y/z.hpp に、おきたくなるようなヘッダーがあります。 しかしboost MLに投稿してもrejectされる可能性を考えて my_lib_name/X/Y/z.hpp においておくべきか,どうかで迷ってます ヘッダーの場所を #define my_lib_name/X/Y/z.hpp INC_XYZ として後で変更できるようにしておくのが無難なのでしょうか? namespaceも boost::X::Y::z などとせず #define my_lib_name::X::Y::z NAME_XYZ としておくのが無難なのでしょうか?
689 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:22:21 ] >>688 boost 気にすんな。紛らわしい。 どうせ accept されないし。 書き換えるにしてもたいした手間じゃない。
690 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 16:44:56 ] >>671 確か、mingwで使おうと思ったときに""だとどうしてもエラーになった気がする。 それ以後ずっと<>にしてる。 ""で行けている人居る?
691 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 17:58:52 ] #define BOOST_DIR c:/lib/boost_ver_xxx/ #define BOOST_BIND_INC BOOST_DIR##bind.hpp うまくいかない #include "BOOST_BIND_INC " うまくいくのかな? #include <BOOST_BIND_INC >
692 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:04:41 ] Makefileの先頭で INCLUDE=C:/boost LIB=C:/boost/mingw こんなんでいけたはず。 というかUNIXルーツのソフトのお約束で常識だったはず。 x.ccをコンパイルする時はこうだった思う。 A>echo "INCLUDE=C:/boost">Makefile A>echo "LIB=C:/boost/mingw">>Makefile A>gmake x
693 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:25:49 ] >>691 それをやるならこんな感じ。 # define BOOST_DIR c:/lib/boost_ver_xxx/ # define PP_IDENTITY(x) x # define PP_STRINGIZE(x) PP_STRINGIZE_I(x) # define PP_STRINGIZE_I(x) #x # define BOOST_INC(name) PP_STRINGIZE(PP_IDENTITY(BOOST_DIR)name) # include BOOST_INC(bind.hpp)
694 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 23:43:27 ] >>691 ちょw
695 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 19:16:12 ] ヨーロッパ系の人の作るライブラリーにboostが使われないのは ライセンスの関係?単なる好み?
696 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 21:58:14 ] 変なレビュー投稿しちまった
697 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 05:06:16 ] spiritって、もしかしてUnicodeは対応してない?
698 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 11:15:53 ] いや、普通にいけるはず。 Unicodeのtextファイル相手にfile_iterator使ってる場合はBOMに注意。
699 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 11:51:17 ] さんクスコ
700 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 23:37:31 ] boost::tuples::get<0>をbindしたいのですが なぜかうまくいきません。 struct tmp_bi_op_t { double sum; double operator()(double a ,double b) { sum +=a+b; std::cout << "(" <<a << " " <<b << " " << sum << ")"; return a+b; } }; tmp_bi_op_t tmp_bi_op; tmp_bi_op.sum=0; std::vector<double > vec,vec2(2); vec.push_back(2); vec.push_back(1); std::for_each( boost::make_zip_iterator( boost::make_tuple(vec.begin(), vec.begin()) ), boost::make_zip_iterator( boost::make_tuple(vec.end(), vec.end()) ), boost::bind<void>( boost::ref( tmp_bi_op), boost::bind(boost::tuples::get<0>,_1), boost::bind(boost::tuples::get<1>,_1))); std::cout << tmp_bi_op.sum;
701 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 22:12:27 ] こんにちは vista+vc2005環境にboostを組み込みたいんですけどうまく行きません 何が原因なんでしょうか・・以下の手順で駄目でした まずboost1_33_1とjamを落とし展開、jamをboostフォルダに移動し、 コマンドプロンプトで以下を実行 (boostのフォルダ以下略)>"C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat" bjam -sTOOLS=vc-8_0 --prefix="C:\Program Files\Microsoft Visual Studio 8\VC" install すると一見快調にビルドしてるようでしたが>>380 氏と同様のエラーが頻発していて、 かつ「Unicodeで保存してください」ワーニングも量産されてました 6.0では組み込みが成功していたんですが、そのときコンパイラに組み込んでいた (VCのフォルダ)\INCLUDE\boost-1_33_1みたいなフォルダは生成されてませんでした 次に>>391 のサイトにあるインストーラを試してみましたがこれも例のフォルダは見当たらず・・ ひょっとしてvc2005ではboostの組み込み方が違っていて 私は壮大な勘違いをしてるんでしょうか? 今日一日かけて調べてみましたが全然分かりません どうかよろしくお願いしますm(_ _;;)m
702 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 23:22:12 ] >>701 391さんのお任せのやつなら、 VC8.0用を指定して展開位置を指定するとそこににboost-1-33-1のディレクトリが出来ているので、 その中にboostがあるから、自分のプロジェクトのインクルードディレクトリに追加指定すれば よいかと思いますけど。リンク対象のライブラリ本体はlibの中にバイナリが入ってます。 VCのINCLUDEに入れたければ、boostフォルダごとコピーすれば使えるのはないですか? VCのLIBにもlibの中身をコピーして。 見当違いでしたら、すみません。
703 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 19:15:31 ] >>702 レスありがとうございます。 それでいいんですね、VC6.0でいけてたときは自動でVC以下にフォルダが できてたような気がしたので、てっきり失敗してるのかと思ってました。 で、プロジェクトにインクルードとライブラリのフォルダを追加したのですが・・・ どうやらboostを認識してるようですがまたもや意味不明のエラーが多量にorz SP1適用もなんかうまくいってないようなのでもう一度よく調べて出直してきます
704 名前:デフォルトの名無しさん [2007/02/09(金) 19:41:07 ] 公式サイトのゲッティング スタートからvc8.0のリンクから飛んだ先にEEのときがある 規制中なので携帯からリンク貼れね
705 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 19:55:20 ] >>702 コピーしなくてもいいだろ。
706 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 20:02:16 ] ビルドしたboostフォルダは1GB超えるからな
707 名前:デフォルトの名無しさん [2007/02/10(土) 21:11:13 ] C++の標準ライブラリになるまでは様子見だな。
708 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 22:22:59 ] Boostがまんま標準化されると思ってる奴がまだいるのか
709 名前:デフォルトの名無しさん [2007/02/10(土) 22:45:21 ] だから様子見なんだろ
710 名前:デフォルトの名無しさん [2007/02/10(土) 23:58:59 ] >>703 俺は、C直下にboost_1_33_1のフォルダ入れて VS2005std使ってて VC++のインクルードディレクトリにC\boost_1_33_1 ライブラリファイルフォルダにC\boost_1_33_1\lib って設定したら、問題なく使えてる。
711 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 20:27:53 ] boostのリビューアー募集してるね
712 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 13:33:23 ] Xpressive の人のライブラリか? 何かスゲーな。
713 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 00:37:48 ] serializationでshared_ptrをシリアライズしようと思ってるんですけど訳分からんです。 とりあえずただの参照でテストしてみたら unregistered_classが発生したので調べたとおりに BOOST_CLASS_EXPORT(Derived); を入れたら今度はunregistered_castが発生したのでいろいろ調べて boost::serialization::void_cast_register<Derived, Base>(0, 0); を入れたらただの参照ならシリアライズできるようになりました。 これを今度はshared_ptrに入れてみようかと思ったら またもやunregistered_classが発生しました。 どうやらsp_counted_base_implとかいうのが絡んでるようで いろいろ試してみたのですがなかなかうまくいきません。 boost_132::shared_ptrとかいう中途半端なものもあるみたいですけど これはもしかしたら仕様策定中ですか?
714 名前:713 mailto:sage [2007/02/19(月) 18:24:41 ] すいません。抜けてました。 派生クラスをベースクラスのポインタでシリアライズしたいのです。 バージョンは1.33.1です。
715 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 18:45:54 ] Accumulatorsの仕様がもう一回変わるとかいってるのですが もう自分のプログラムにいれちゃったよ
716 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 10:40:57 ] TR1、TR2、C++0xとboostの主機能が取り込まれるのを期待しているが、 実際C++0xが2010年位にできたとして、実際主なコンパイラがサポートしだすのは いつになるんだろう。 GCCは期待できるとして、次期Visual C++で何も動きがないとすると、 結局今後5年くらいはshared_ptrつかうにもboostのお世話になったりして。 1_34いつになるのかなぁ・・・。
717 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 10:57:48 ] 規格殺すにゃ刃物はいらぬ MSのサポートがなけりゃいい
718 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 11:05:36 ] つか、MSがその頃までC++をサポートしてるかどうか
719 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 12:26:40 ] 今となっては TR1,TR2 以外のライブラリも増えたんで主機能という風でもないような。 C++0x 後にゃ、今度はその新機能を使いまくりのライブラリが作られるだろうし。
720 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 14:13:29 ] >>718 ドライバとか、どうしてもC/C++が必要な領域もあるだろうから、 当分はVisualC++無くならないと思う。たぶん。
721 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 14:17:11 ] いずれはドライバも C# の unsafe 使って書いてくれとか言われるのかなw
722 名前:713 mailto:sage [2007/02/23(金) 19:57:51 ] どうにか自己解決しました。 デバッグのためのコードが邪魔してたみたいです。 スレ汚しすいませんでした。
723 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:32:35 ] 以前スレで紹介されていたBoostのインストーラーを使いセットアップし、regexを使ってソースを書いたところ、Boost側のソースで boost\regex\v4\regex_raw_buffer.hpp(177) : error C2661: 'operator new' : 3 個の引数を伴うオーバーロードされた関数はありません。 boost\regex\v4\perl_matcher_non_recursive.hpp(99) : error C2059: 構文エラー : '*' というエラーが出たんですが、どうすれば直るんでしょうか? コンパイラはVC++2005Expressです。
724 名前:723 mailto:sage [2007/02/26(月) 23:31:23 ] 自己解決。 stdafx.hで #include <boost/regex.hpp> すればOKだった。
725 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:58:53 ] boostって何で流行らないの?糞だから?
726 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 00:06:08 ] 流行ってると思うけど
727 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 08:26:44 ] 俺だけ取り残されてるわけじゃないんだ! という 必死の念仏でしょう。
728 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 14:38:27 ] 常に最新の boost を使いたい場合は、 CVS から定期的に取って来て自動的にビルド、 エラー無ければ直前のバージョンと入れ替え、 というようなシステムを自前で用意しないとダメ? PHP の PEAR のようにリポジトリから 最新バージョンを持ってきてくれると便利なんだが。 って、スクリプト言語の手軽さと比較するほうが間違いか。
729 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:30:35 ] Visual Studio用にバイナリで配ってない時点で、流行ってないことは明らかだろ。
730 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:58:05 ] 流行っているといえば流行っている 流行っていないといえば流行っていない 結構微妙な位置づけな気がする 巨大な非標準ライブラリってだけで、使いにくい局面は多いよな
731 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:03:29 ] >>729 bjamの宣伝をしたいからじゃね?
732 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:05:00 ] 対応してるコンパイラが何十種類もあるのにVC++だけ特別扱いするわけにはいかんだろう
733 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:11:59 ] デバッグ・リリース、静的・動的リンクの 全ての組み合わせのLIB/DLLを合計すると軽く1GiB超えていた覚えがある。 でも今確かめてみたらDLLとそのインポートライブラリに限れば、 10MiB以下に収まっている(1.33.1のVC++ 7.1でのビルド)。 俺は動的リンク版が無いもの以外静的ライブラリを削除しているのだが、 残った静的ライブラリの合計は、およそ221MiB。 (ただしNTFSの圧縮でディスク上は68.5MiBとなっている)
734 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:19:33 ] >>732 ユーザが多い順にバイナリくらい提供した方がいいだろ。
735 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:26:46 ] 流行ってるかどうかとはあまり関係ない話だな
736 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:08:04 ] >734 馬鹿除けになるからバイナリは無い方がいい。bjamぐらい使え。 そもそもバイナリ必要なのは一部だけだし。
737 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:09:49 ] 無いと困るような人とその存在すら知らない人が同じフロアで仕事してる つうか技術寄りな人が勝手に調べて喜んで使ってる感じ
738 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 10:24:58 ] VCユーザなら、こっからinstaller落とせるけど。 www.boost-consulting.com/download.html