[過去ログ] Boostを語れゴラァ part2 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(3): 2006/02/07(火)20:53 AAS
語って.はぁと part boost::mpl::int_<2>
前スレ
BOOSTを語れゴラァ
2chスレ:tech
875(1): 2006/09/05(火)07:34 AAS
>>874
あー std::mem_fun はスマートポインタへのサポート無いから、駄目だね。
boost::mem_fn で置き換えるとそのままいけるよ。
ほかにも boost::bind でも boost::lamnda::bind でもいける。
876: 2006/09/05(火)07:40 AAS
>>875
ほんとうだ。mem_fnにしたら行けました。ありがとうございます。
877(2): 2006/09/06(水)08:48 AAS
boost::ptr_vector って、
シリアライザ用意されてないんだね。
878: 2006/09/06(水)09:45 AAS
やられた。<boost/cstdint.hpp>には、(u)intptr_tがないなんて。
879(3): 877 2006/09/06(水)13:07 AAS
1.34 では Pointer Container のシリアライザも用意されるみたいだね
外部リンク[hpp]:boost.cvs.sourceforge.net
ところで 1.34 の目玉ってなに?
880(2): 2006/09/06(水)13:15 AAS
>>879
外部リンク:boost-consulting.com
881: 877 2006/09/06(水)13:34 AAS
>>880 半月くらい前に教えて星方
882: 2006/09/06(水)18:32 AAS
ようやく 1.34 で Xpressive くるか!
883: 2006/09/06(水)18:52 AAS
正規表現ライブラリが
何種類も用意されるんだな。
884(2): 2006/09/06(水)19:57 AAS
filesystem::path が、filesystem::basic_path になるのは地味に嬉しい。
885(1): 2006/09/06(水)22:13 AAS
>>884 どう違うの?
886(1): 2006/09/06(水)22:15 AAS
もうC++とBoost無しでは生きていけなくなりそうだ
887: 2006/09/06(水)22:46 AAS
>>886
じゃあ、Boostと結婚しろ
888(1): 2006/09/06(水)22:53 AAS
C++とBoostと結婚したら重婚になってしまいます
889: 2006/09/06(水)23:03 AAS
C++やBoostに戸籍なんてないから事実婚でOK
890(1): 2006/09/06(水)23:08 AAS
>>884-885
Unicodeでパス名が扱えるようになるってことかな?
891: 2006/09/06(水)23:20 AAS
>>890
そうか、今までunicodeは使えなかったのか。
個人的にはURLも統一的に扱えると便利なんだが。
892: 2006/09/06(水)23:29 AAS
>>888
男の子を産めよ
893(1): 2006/09/07(木)06:33 AAS
Program Options を使っておられる方に質問です。
たとえばコマンドラインでデバッグレベルを設定するのに、
optionsDescriptionOfCommandLine.add_options()
("debug-level", value<unsigned>
(&generalOptions.debug_level)->
default_value(0), "debug level");
のようにすれば、
store(command_line_parser(argc, argv).
options(optionsDescriptionOfCommandLine).run(), variablesMap);
notify(variablesMap);
省8
894: 893 2006/09/07(木)10:11 AAS
パラメータの正当性を自分でチェックするための
コードがコールバック(?)されるようにするためのものみたいですね。
あと、さっき気づいたんですが、あらかじめ用意されている
基本型や std::string など以外の型でも、
1)デフォルトコンストラクタが用意されている
2)代入演算子が用意されている
3)std::istream& operator>> が用意されている
4)std::ostream& operator<< が用意されている
この条件さえ満たせばオプションの型として使えるみたいですね。
895: 2006/09/07(木)10:11 AAS
basic_path ってことは basic じゃないすごい
なにかとてつもないクラスが用意されているんだな!
896: 2006/09/07(木)16:28 AAS
AA省
897(5): 2006/09/10(日)08:02 AAS
std::auto_ptr って boost::scoped_ptr に代入できるんだな。
std::auto_ptr でさんざんこねくり回してから
最終的な保持場所に boost::scoped_ptr に代入すればいいのか。
こねくり回すときには今まで boost::shaed_ptr を使ってた。
898(2): 2006/09/10(日)14:13 AAS
>>897
書き手の日常が臭ってくる卑猥な文章だったんで少し脚色してみた。
チンポ って マンコ に挿入できるんだな。
指 でさんざんこねくり回してから
最終的な保持場所に チンポ を挿入すればいいのか。
こねくり回すときには今まで バイブレータ を使ってた。
899(1): 2006/09/10(日)14:14 AAS
>>898
卑猥なのはおまえだ
900(1): 2006/09/10(日)14:25 AAS
>>899 卑猥じゃなくて、比喩。
901: 2006/09/10(日)14:27 AAS
>>900
卑猥な比喩だろ
902: [sage ] 2006/09/10(日)14:29 AAS
妄想癖があることだけは解った
903: 2006/09/10(日)14:41 AAS
楽しそうだな、おまえら。
904: 2006/09/10(日)16:16 AAS
>897 は、自分が発してる卑猥さに気付いて無いんだね
905: 2006/09/10(日)19:38 AAS
>>897
知識披露厨ってやつか。 C++ 相談室にも居なかったか?
独り言はチラシの裏にでも書いとけ。
と思ったけど、このスレをさっさと落とすのには役立つから、ここでなら別にいいや。
906: 2006/09/10(日)20:59 AAS
>>897
まぁおまえのような奴はどこのスレッドに行っても
うざがれるだけだろうけどな。
俺はBoost厨の集まるゴミスレがさっさと落ちてくれればそれでいい。
死ねよ。
907: 2006/09/10(日)23:31 AAS
変なのが粘着しちゃったな
908(1): 2006/09/11(月)00:24 AAS
>>898が知識披露厨ってことは分かった。
909: 2006/09/11(月)00:34 AAS
>>897
知識披露厨、発見!
だから何?
910: 2006/09/11(月)00:35 AAS
>>908
他人に八つ当たりは見苦しいよ
911: 2006/09/11(月)06:28 AAS
まぁ、発見がたくさんある人生は楽しそうで羨ましいかなw<ってことは分かった
912: 2006/09/11(月)11:31 AAS
もうこのスレは終わりでいいだろ
C++のスレをいくつもたてんなよ。
913: 2006/09/11(月)11:32 AAS
ここはboost馬鹿の隔離スレなので必要。
914: 2006/09/11(月)12:58 AAS
まだ終わらんよ
915: 2006/09/12(火)00:42 AAS
Boostは、C++皇位継承権第一位の皇太子だかんな
916(1): 2006/09/12(火)15:27 AAS
Boost.Serialization
先にarchive関係のヘッダインクルードしてなかったせいで
奇妙なエラーが出て悩んだ...orz
917: 2006/09/12(火)16:28 AAS
>>916 うむ、そうだよな。俺も悩んだ。
boost/archive/xml_iarchive.hpp とかを
先にインクルードしておかなきゃ駄目なんだよな。
ホントは順序依存性があるのは良くないことなんだがな。
あるならあるで #error とか使って止めてくれって思うよ。
918(1): 2006/09/12(火)16:47 AAS
何をシリアライズしたいか、プログラマ以外には分からない。
919: 2006/09/12(火)17:38 AAS
>>918
どんな順でヘッダふぃあるをインクルードしようが
テンプレートが特殊化される時点では boost::serialization::*
も boost::archive::* も読み込まれているので、問題ないはず、
まぁそれは理想で現実はインクルード順が違うとエラーになるんだが。
何が困るかって言うと、もし自分が使用したいライブラリの中で
さらにインクルードが行われていると、制御するすべがない
場合もある、ということだな。
とはいえ、今のところサードパーティのライブラリが boost
依存なんて聞いたことがないので、自分でインクルード順に
省1
920(2): 2006/09/13(水)15:44 AAS
boost::serialization::make_nvp
は
ワイド文字や実体参照には対応してないのでしょうか?
921(1): 2006/09/13(水)15:54 AAS
>>920 それは、XML のタグ名としてワイド文字を使いたいと言うことですか?
922(1): 920 2006/09/13(水)16:28 AAS
>>921
ワイドで統一してる場合、そこだけchar*になるのも嫌だなと思ったので。
NVPはタグになるから実体参照関係ないですね...
だから、型名を直接埋め込むわけにはいかないのか。
.NETでも
hoge<int,int> -> hogeOfInt32Int32
とかに変換されてるぽいし。
923(1): 2006/09/13(水)17:11 AAS
>>922
make_nvp のソースを見てみれば分かると思うけど、
タグ名への変換は単純にプリプロセッサの文字列化演算子を
使っているだけなので、ワイド文字は想定されていないみたい。
ところで、俺は普通直接 make_nvp を呼び出さずに
BOOST_SERIALIZATION_NVP(aiueo) みたいに呼び出して
タグ名は aiueo で値は変数 aiueo なので、
変数名 = 要素名 なんだけど、わざわざ要素名にワイド
文字を使いたいってことあるのかな?
924: 2006/09/13(水)22:43 AAS
>>923
よくレス読めよ
925: 2006/09/16(土)01:18 AAS
Boost初心者です。
いちいちVisual Studioのディレクトリにインストールするとめんどくさいので、
プロジェクトの中にProjectA/inc/boost/とか作って、その中に使いたいヘッダを
どかっと入れようと思うのですが。
boost/config.hとか
boost/config/以下のヘッダ群が気になります。あれも入れた方が良いんでしょうか。
あれらって、インストール時に自動的に生成されたヘッダだったりするんでしょうか。
それともどの環境向けのboostでも同じコードなんですか?
プロジェクトをいずれ色んなコンパイラでビルドできるようにしたいので、boostで必要な
ヘッダを入れて、どの環境のコンパイラでもそのままビルドできるようにできるといいのですが。
926(1): 2006/09/16(土)01:41 AAS
>boost/config.hとか
>boost/config/以下のヘッダ群が気になります。あれも入れた方が良いんでしょうか。
たいていの場合他のヘッダが依存しているので入れないと機能しないはずです.
>あれらって、インストール時に自動的に生成されたヘッダだったりするんでしょうか。
多分no.$(BOOST_ROOT)/boost以下は全てパッケージの段階で存在するファイルのはずです.
>それともどの環境向けのboostでも同じコードなんですか?
ヘッダに関してのみなら多分yes.
単に#ifdefで切り分けていたりとかそういうコードで占められているはずです.
>プロジェクトの中にProjectA/inc/boost/とか作って、その中に使いたいヘッダを
>どかっと入れようと思うのですが。
省2
927(1): 2006/09/16(土)04:54 AAS
>いちいちVisual Studioのディレクトリにインストールするとめんどくさいので
Boost インストールする場所なんてどこでもいいと思うんだが。
ちなみに俺は各マシンでビルドするのが面倒くさいので、
ビルドしたバイナリをインストーラ付きのパッケージにしている。
で、パッケージのインストール先は C:\Program Files\boost だ。
いや、まぁそんな空白入りのディレクトリに入れるなとか言う批判も
わかるが、VC++ ならそんなディレクトリでもインクルードパスに
追加できるし、無問題。
ホントは Windows も UNIX 系のディレクトリコンベンションに
従っててくれればよかったんだけどね。 C:\usr\local\include とかさ
928(2): 2006/09/16(土)09:31 AAS
聞いてもいないことをペラペラペラペラと・・・
パスに空白があることより、お前の頭に空白があることが問題だ
929: 2006/09/16(土)09:39 AAS
>>928
いちいちそんなことで絡むなよ
カルシウム取れ(´ー`)ノ⌒θ
930: 2006/09/16(土)13:19 AAS
>>926
おお、ありがとうございます。
bcpなんてのがあったんですね。
>>927
そういうやり方もありますか。環境をWinだけに限ればそのやり方もありかもしれませんね。
しかし、config.hとか見てみると#defineで処理分けていますが、あそこらへん、ユーザーがマクロ名の定義とかする必要があるシチュってあるんでしょうか。
931(1): 2006/09/16(土)13:21 AAS
>>928
それ、誰かに聞かれたの?
聞かれていないならペラペラと無駄なこと書かないように :-)
932: 2006/09/16(土)13:51 AAS
>>931
それ、誰かに聞かれたの?
聞かれていないならペラペラと無駄なこと書かないように :-)
933(2): 2006/09/16(土)13:54 AAS
恐怖の無限ループキターーーー!
934: 2006/09/16(土)13:57 AAS
>>933 循環参照ともいう。
いわねぇか。
935: 2006/09/16(土)14:04 AAS
>>933
まぁ実際にはループになってないけどねw
聞かれていないなら言うな、と主張してるのは片方だけだからw
936: 2006/09/16(土)14:31 AAS
>聞かれていないなら言うな、と主張してる
誰がどのレスで?
937: 2006/09/16(土)16:09 AAS
ねばるねばるw
938: [sage ] 2006/09/16(土)16:55 AAS
外したこと書いたって思った時点で粘着やめて頭冷やしてくれ。
できればURLも暫く忘れて来ない方がいい。
939: 2006/09/16(土)17:11 AAS
じゃあお前は来ない方がいいね
940: 2006/09/16(土)17:47 AAS
まぁみんなでカルシウム摂るということで
941: 2006/09/16(土)18:43 AAS
最近「カルシウム」という単語をよく見る気がする。
942: 2006/09/16(土)18:53 AAS
カルシウムにはVDも必要だぞ!
943(1): 2006/09/16(土)19:42 AAS
bcpってソースコードでしか配布されてみたいですね。
boost/tools/
以下のツールプログラムの一括コンパイルのやり方がよく分かりません。
bjamを使うらしいことは分かるのですが・・・。
944(1): 2006/09/16(土)22:04 AAS
>>943
一括コンパイルはわからんけど、bcpだけならtools/bcp/でbjam実行すれば
bin/boost/tools/bcp/あたりに実行ファイルできるんじゃない?
945(1): 2006/09/17(日)05:00 AAS
>>944
アドバイスありがとうございます。でもbjamってmakeと違って良く分からなくて、
どんな引数を与えればよいのか・・・。
946(1): 2006/09/17(日)07:39 AAS
本家のgetting startedか↓見ればいいんでない
外部リンク[html]:www.kmonos.net
947(1): 2006/09/17(日)09:39 AAS
>>945
bcpならとりあえず-sTOOLS=(ビルドツール名)だけつけとけばいけるよ
948: 2006/09/17(日)11:49 AAS
>>946
>>947
ありがとうございます。できました!
最初Cygwinでやってたら失敗して、コマンドプロンプトで成功しました。
しかし、bcp shared_ptr fooとかやってもかなりの量コピーされるなぁ・・・。
949(2): 2006/09/19(火)16:59 AAS
shared_ptrのなかにthisを入れてreturnしたりするのってよくない?
950: 949 2006/09/19(火)17:30 AAS
このようなコードなのですが、shared_ptrを使うと、main()のスコープから外れる前に
deleteされてしまって、セグメンテーションフォールトが起きます。
どこがおかしいのでしょうか。
#include <iostream>
#include <boost/shared_ptr.hpp>
struct A;
typedef boost::shared_ptr<A> APTR;
//typedef A* APTR;
void print(APTR);
struct A{
省17
951: 2006/09/19(火)17:32 AAS
getPointer()が返る時にはdeleteされてるんで当然だろ
952: 2006/09/19(火)17:46 AAS
BとDを使え
953: 2006/09/19(火)17:53 AAS
端的に言うとshared_ptrの使い方根本的に間違ってる。
954(1): 2006/09/19(火)18:18 AAS
enable_shared_from_thisかな?
955: 2006/09/19(火)18:45 AAS
>954
950じゃ無いがそんなのあったんだな
俺はweak_ptr持たせてその都度lock()してたよ
956: 2006/09/19(火)21:06 AAS
Boost C++ Library プログラミング 購入。
これで俺もBoost馬鹿に。
957: 2006/09/19(火)21:11 AAS
ドキュメント読もうとしない時点でただの馬鹿
958: 2006/09/20(水)01:27 AAS
文字化けしてますよ。
959: 2006/09/20(水)02:34 AAS
文字化けしてませんよ。
960(2): 949 2006/09/20(水)06:59 AAS
使い方が間違っているから、先にdeleteされてしまうんだとは思いますが、
shared_ptrの用途は合っていますか?
生ポインタと同じように使って、いろいろなスコープにコピーされるけど、
最後のポインタがなくなるときに、生ポインタも解放される、
という使い方をしたいのですが。
virtualなメンバ関数は継承元ポインタで呼び出したときでも、継承先のメンバ関数が
呼ばれる、という普通のポインタのような継承もしたいのですが。
961: 2006/09/20(水)12:07 AAS
>>960
用途はそれで合ってると言える。 "shared" だからね。
継承したときの動作も普通のポインタと同じ。
962(1): 2006/09/20(水)12:21 AAS
>>960
そういう用途なら、IUnknown みたいな参照カウント管理を行うための
クラスを用意しておいて、intrusive_ptr でラップしたほうがいいような気がする。
963: 2006/09/20(水)12:32 AAS
>>962
それは効率が問題になってからでいいんじゃないの?
964(1): 2006/09/20(水)13:02 AAS
いや、クラス側が自分へのポインタをスマートポインタで返したいって話なら、
侵入型スマートポインタが一番自然な解だと思うが。
965: 2006/09/21(木)08:09 AAS
>>964
boost::shared_ptr とかの
普通のスマートポインタじゃなくて?
966: 2006/09/21(木)08:41 AAS
侵入型も普通のスマートポインタだと思うがw
967(2): 2006/09/21(木)15:16 AAS
boost::filesystem:wpath が使えるようになるのは、
次のバージョンからでしょうか?
968: 2006/09/21(木)15:52 AAS
>>967
yes。
ただし、CVSから、最新版落としてくれば今からでも使える
969: 2006/09/21(木)19:23 AAS
デフォルト引数を使った関数でboost.bindするときは注意が必要なんだな。
あのエラーメッセージじゃデフォルト引数の問題と気づくのは至難の業だ。
970(1): 2006/09/21(木)20:12 AAS
>>967
boost::filesystem::path の wchar_t バージョン?
971: 2006/09/21(木)20:33 AAS
>>970
そのとおり。basic_stringみたいにbasic_pathというクラステンプレートが作られた。
972: 2006/09/21(木)20:55 AAS
Windows な人が今のバージョンの boost::filesystem:: で
ディレクトリ一覧を取得したりして、日本語ファイル名が
含まれていると、今は std::string なのに UTF-8 が
入って返ってきたりするのか。
973(2): 2006/09/21(木)21:52 AAS
UTFじゃなくてOS依存でUCS2かUCS4になるはず。
たぶんWin32だとUCS2で入ってくる。
974: 2006/09/21(木)21:54 AAS
吐き気がした
975: 2006/09/22(金)12:29 AAS
>>973
Win32 API が MBCS なり UTF-16 なりで返してくるファイル名を(どうやってか)UCS2に
変換して、それを std::string に入れるの?! そりゃ酷い実装だな・・・
976: 2006/09/22(金)12:47 AAS
普通UCS-2やUCS-4はwstringのはずだよな。
977: 2006/09/22(金)12:51 AAS
今のboost::filesystemは、APIが返すバイト列をそのまま使ってるだけじゃないのか?
FindNextFileAとか直に書かれてるし。
978: 2006/09/22(金)15:39 AAS
>>973
いや、wstringはUTFを扱えないからUCSで処理するだろう。
<演算子とか使えなくなって大改造が必要になる。
だから変換時にUCSの範囲を超えたら例外を投げるか
あるいはそこでの動作保証をしないかのどちらかだろ。
979: 2006/09/22(金)16:21 AAS
wchar が UCS2 か UCS4 かってどこかで決められてるの?
Windowsでのワイド文字はどっち?
980(1): 2006/09/22(金)16:38 AAS
wchar_tが具体的に何bitかはコンパイラの勝手。VC++@Win32だと16bitでgcc@Linuxだと普通32bitだったと思うが。
wchar_tにどのエンコードで入ってるかはライブラリやユーザーの勝手。
OSレベルの話ならWindwos2000あたりまではUCS-2、XP以降でUTF-16になったと思うが、
Windowsのどのバージョンが具体的にUnicodeのどのバージョンをサポートしてるかはしらん。
981: 2006/09/22(金)17:05 AAS
>>980 そうか、Windows のAPIでUnicode版ってのが UCS2 じゃなくて UTFー16 になったのは
最近のことだったのか。UCS2 の範囲を超えたら例外って意味が分からなかったんだよ。
そうすると boost::filesystem はかなり無茶しているなぁ。
Windows API とのやりとりなんてバイト列そのまま受け渡しだから。
982: 2006/09/22(金)18:24 AAS
OSの話だけじゃなくてsortとかiteratorの問題もあるから
どうしても文字セットを広げたければUCS4でやるべきなんだな。
983(1): 2006/09/22(金)18:34 AAS
結局、Visual C++ のコンパイラと付属ライブラリが
wchar_t を16ビットで扱うのが悪いということか。
ところで wchar_t って組み込み型?それとも typedef 型?
984(1): 2006/09/22(金)18:34 AAS
つーか文字列のiteratorはrandom accessにすべきじゃなかったんだ。
今更言ってもどうしようもないが。
985: 2006/09/22(金)18:38 AAS
>>983
C++の規格では組み込み型。VC++はコンパイルオプションでどちらにもできたと思う。
986(1): 2006/09/23(土)00:56 AAS
>>984
random accessできない文字列のiteratorって何に使うの?
987: 2006/09/23(土)01:01 AAS
マルチバイト文字列をこの世から消し去りたい
988: 2006/09/23(土)01:21 AAS
I want to obliterate all the characters not used in the English-speaking world.
989(1): 2006/09/23(土)02:09 AAS
>>986
984ではないが、
たとえば検索したり連結したりストリームと読み書きしたりなどといったことはBidirectionalであれば十分。
ランダムアクセスしたければvectorで扱えばよいと俺は思う。
990(1): 2006/09/23(土)02:36 AAS
>>989
vector に入れてランダムアクセスできる型が basic_string に入れたら
ランダムアクセスできなくできなくなるのっておかしくね?
991: 2006/09/23(土)02:57 AAS
>>990
basic_stringクラスそのもののことを言っているんじゃないかと。
992: 2006/09/23(土)05:01 AAS
そのうち効率重視の sequential_string とかが出てくる夢を見た。
驚いて飛び起きたら、まだ5時だった。
993: 2006/09/23(土)09:59 AAS
作るのは自由なんだぜ。
994: 2006/09/23(土)11:58 AAS
Unresolved Issues: CVS-RC_1_34_0
外部リンク[html]:engineering.meta-comm.com
まだまだみたいだな・・・
995: 2006/09/23(土)13:41 AAS
次スレどうする?
今の内容で次スレ立てていいか?
996: 2006/09/23(土)14:00 AAS
ダメ
997: 2006/09/23(土)14:01 AAS
このスレ的にはボーランド相手にされてないかもしれないけど、
The unofficial BCB Boost patches
外部リンク:bcbboost.sourceforge.net
1.34 では取り込まれる予定
くらいはテンプレのどっかに書いておいてあげたら?
998: 2006/09/23(土)14:05 AAS
>>8 >>777-778 も仲間に入れてあげてよ。
あと、 >>879 もリンクに入れてあげて。
999(1): 2006/09/23(土)15:05 AAS
Boostを語れゴラァ part3
2chスレ:tech
これでいいか?
1000: 2006/09/23(土)15:11 AAS
>>999
乙
でもリンクに入れるのは >>879 じゃなくて >>880 だったと思われ。
1001: 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.261s*