BOOSTを語れゴラァ
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGそれってどういうことだ?
VCじゃ使えないと思ってる?
それを言ったらVC付属じゃない外部ツールは皆使えない事になるし。
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGあんま関係無い
0011デフォルトの名無しさん
NGNGワラタ
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1083550483/l50
こっちでやれ。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGboost自体、ネタみたいなもんだからな
0017デフォルトの名無しさん
NGNGそれは聞き捨てならねぇな
0018デフォルトの名無しさん
NGNGspirit は凄いんだが、いかんせんコンパイル速度が orz
0019デフォルトの名無しさん
NGNG開発用マシンに爆速CPUの需要を喚起してくれる素晴らしいライブラリ。
「あなたの開発速度をboostさせるPentium5プロセッサ」
Pen4のエンコード需要なんて、そのうちハードウェアエンコーダが
出てきて一般的になり、CPUは売れなくなると思われ。
0020デフォルトの名無しさん
NGNGインテルもそうしたいのは山々かもしれんが、
64bitWindowsの足を引張るほど猛烈な勢いで失速中なのでw
ttp://japan.cnet.com/news/ent/story/0,2000047623,20070161,00.htm
インテル、さらにつまずき--Noconaプロセッサの補助チップに不具合
2004/07/30 20:00
インテル、3.6GHz版のPentium 4が深刻な供給不足に
2004/07/30 11:55
インテル、今度は4GHz版Pentium 4のリリースを延期
2004/07/30 10:44
インテルCEO、度重なる開発の遅れに苦言--従業員の姿勢に疑問を呈す
2004/07/28 14:25
インテル、新型ノートPC用チップセット「Alviso」の投入を延期
2004/07/20 12:27
インテル、Express 915/925チップセットを回収へ--ICH6チップに製造ミス
2004/06/28 10:50
米インテル、次世代モバイルチップ Dothanの発売を延期へ
2004/01/15 16:36
0021デフォルトの名無しさん
NGNGインテルもそうしたいのは山々かもしれんが、
64bitWindowsの足を引張るほど猛烈な勢いで失速中なのでw
ttp://japan.cnet.com/news/ent/story/0,2000047623,20070161,00.htm
インテル、さらにつまずき--Noconaプロセッサの補助チップに不具合
2004/07/30 20:00
インテル、3.6GHz版のPentium 4が深刻な供給不足に
2004/07/30 11:55
インテル、今度は4GHz版Pentium 4のリリースを延期
2004/07/30 10:44
インテルCEO、度重なる開発の遅れに苦言--従業員の姿勢に疑問を呈す
2004/07/28 14:25
インテル、新型ノートPC用チップセット「Alviso」の投入を延期
2004/07/20 12:27
インテル、Express 915/925チップセットを回収へ--ICH6チップに製造ミス
2004/06/28 10:50
米インテル、次世代モバイルチップ Dothanの発売を延期へ
2004/01/15 16:36
0022デフォルトの名無しさん
NGNGについて語るスレはここですか?
0023デフォルトの名無しさん
NGNGいやそうなんだけど、テンプレートライブラリ使うと
コンパイルが遅いとか嘆いてる奴の使ってるマシンを
聞いてみると、Pen3-600MHz辺りを使ってることが多い。
もうね。
動画エンコード厨だってそんな馬鹿はいない。
さっさと早いマシン買ってきます。
0024デフォルトの名無しさん
NGNGもしくはAthlon64-3200とか。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGPen4はうるさすぎ。熱すぎ。
0027デフォルトの名無しさん
NGNGAthlon64使えや。
マルチメディア関係はPentium4もAthlon64も同等レベルだけど、
普通の整数演算はAthlon64の方が速いんだから。
0028デフォルトの名無しさん
NGNGアフォもなにも、たかだかコンパイルくらいでマシンを買い換えられるわけないだろが。
0029デフォルトの名無しさん
NGNG貧乏人
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGたった数万の投資で年間の業務が快適になるわけだから、
正直買い渋ってるほうが損してると思われ。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGまえに600Mから1.1Gに変えて余り変わらなかったんだけど
0039デフォルトの名無しさん
NGNGIOがとろいんだろ
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGんだ。E-IDEでストライプしてたんだけど、CPU上がってなかったからIOとは思ってた.
RAMDISKにしてCPU早いとまじはやくなる?
0042デフォルトの名無しさん
NGNGHDDアクセスがあるってことは容量も足りて無さそう
0043デフォルトの名無しさん
NGNG処理が重いときメーターが振り切ってればCPUが、振り切ってなければ
(ディスク)IOが遅い、またはスワップしているということが大まかに分かるよ。
0044デフォルトの名無しさん
NGNGVCの場合Releaseビルドだと最適化でCPUが、
Debugビルドだと各種デバッグ用ファイルの出力でIOがネックになることが多いね。
004541
NGNGSDRってめもりのこと?めもりもそのときは512Mでまぁまぁあまってたんだけど
とにかく書いてるから遅いってかんじではあった
0046デフォルトの名無しさん
NGNGboostに使われてるってなことになりそうで
怖いのでまだ使いません。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG…軽く打つになった。ハァ。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG開発用のマシンぐらいせめて言いの使えば。
実行時におそく、全ユーザーのマシンにまで
高性能を要求しちゃう某言語よりはましでしょ。
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGそりゃそうだけど、spilitにはBNFlikeな構文で
直接ソースに記述できるとか、動的なparserを
生成しやすいとかいろいろメリットがあるのでは?
それらのメリットに対するコストが実行時であるよりも
コンパイル時のほうがましでしょって事。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGdocomoの端末もg++みたいだよ。
そういえばembeded C++ってのはどうなったんだ?
0058デフォルトの名無しさん
NGNG今の組み込みは情報家電とか車載コンピュータ
005957
NGNG携帯端末の方が電源の縛りが合って軽くないかな。
あれ、これスレ違いだな。
0060デフォルトの名無しさん
NGNG006157
NGNG多重継承ができないんだっけ?
http://www.caravan.net/ec2plus/spec.html
boostどころの騒ぎじゃないな…
0062デフォルトの名無しさん
NGNGANTLRとか,LL系の復活の兆しだろうか.
shared_ptrくらいならともかく,spiritになるとコード読んでもどこが何の処理なんだかも分からない...
「C++はCにオブジェクト指向の拡張を施したもの」っていう紹介止めようぜ.
最近のC++の流れ,テンプレートメタプログラミングは,OOPとほとんど関係ないし.
0063デフォルトの名無しさん
NGNGアクションベースで使うのどっちがいいの?
大規模になるほど構文木ベースの方が分かりやすいような気がする
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG釣りか?最近の流れっつけど、ぜんぜん主流じゃないし。
話題は多いけど、OOPLとしての用法があくまでベースだ。
おまえが興味を持って意図的にそっち方面の情報を目にしてるだけだろ。
0066デフォルトの名無しさん
NGNG{
この書き方いいね。
0067デフォルトの名無しさん
NGNGで
「作って分かるBoost C++テンプレートメタプログラミング」 刊行マダァ? > 誰かエロいひと
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG------------
The following is a list of known issues present in the tarballs
which grant them their draft status:
1) A small number of unmarked test failures (but no regressions).
2) A small number of broken links as follows:
doc/html/date_time/doxy.html: broken link:
../../../boost/date_time/dst_transition_day_generators.hpp, broken link:
../../../boost/date_time/local_time_base.hpp
doc/html/date_time/posix_time.html: broken link: ../../../libs/date_time/doc/time_duration_inherit.png
doc/html/libraries.html: broken link: ../boost.pdf
libs/libraries.htm: broken link: ../boost.docbook, broken link: ../boost.fo, broken link: ../boost.pdf
libs/numeric/conversion/doc/converter.html: broken link: udt_support.html
libs/numeric/conversion/doc/converter_policies.html: broken link: udt_support.html
3) No documentation in PDF format ("boost.pdf"), due to some build
issues (I'll post separate email on this).
4) Placeholder pages in place of the revoked pre-1.32 MPL
documentation.
If you encounter any issues that are not in the above list, please
report them here!
0072デフォルトの名無しさん
NGNGicc-8.0,icc-8.1
CodeWarrior-9.3
の3つに変化してるね。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGビルドに1日ハマってしまった orz
0076デフォルトの名無しさん
NGNG早くしろよ。
どうでもいい更新ばっかしやがって
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGあとOpenGL
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGIDE?何言ってんだ?
0081大原ゆき
NGNG0082デフォルトの名無しさん
NGNGコンパイラ?何言ってんだ?
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086大原ゆき
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGまあantはもっと重いけどさ
0091デフォルトの名無しさん
NGNGlibファイルが20MB近くあるぜ。カコイイ。
0092デフォルトの名無しさん
NGNG実行ファイル何MBになるんだ…
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGBCCにこだわるならboostは諦めろ。
0095デフォルトの名無しさん
NGNGあれが無いと困るんだ!
いつまで俺にWinとLinuxのコンパチソースを書くときに毎回#ifndefとかウザいの書かせるんだ。
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG別に待ってなくてもいいんだよ
contributeしたら?
0098デフォルトの名無しさん
NGNG標準のspiritじゃ通らないからここに書いてあるとおりに1.6.1拾って設定してコンパイルしたが
やっぱり通らなかった。
結論…bcc-5.6.4はウンコ
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101本田
NGNGオープンソースを、自分の使っている処理系用に、
カスタマイズできない人も、ハイレベルじゃない。
0102デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG標準添付という意味ならんなもんない。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG新しく紹介本を書く予定です。ドゾヨロシク
「ウホッ!いいboost やらないか?」
0109デフォルトの名無しさん
NGNGもしかしてエピ公?
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGttp://www.alhem.net/Sockets/
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGおまえの彼女。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGウブラス
0118デフォルトの名無しさん
NGNGビルドして実行すると,
boost_thread-vc71-mt-gd-1_31.dll が見つからなかったため、
このアプリケーションを開始できませんでした。アプリケーションを
インストールしなおすとこの問題は解決される場合があります。
というメッセージが出てしまいます。どうしたらよいのでしょうか。
環境は WindowsXP VC7.1 です。
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGこの場合のアプリケーションは boostのことをさすのでしょうか。
一応、....vc7\lib フォルダの中に boost_thread-vc71-mt-gd-1_31.dll ファイルは
見つけられるのですが。。
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGパスが通ってないライブラリをどうやってOSが見つけられるというのだ
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG環境変数を設定したらできました。
ありがとうございます。
0125Rubykitch
NGNG0126デフォルトの名無しさん
NGNGでも、たぶんプログラム初心者なんだろう。その中でboostを使おうとするその心意気やよし。
0127デフォルトの名無しさん
NGNG× プログラム初心者
○ プログラミング初心者
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGなんちゃってなんちゃって
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGブッシュが再選したので世界の終末が一歩進みました。
0135デフォルトの名無しさん
NGNGそれは、世界の終末にリリースされても、
使う暇がないのでは無いだろうかという事だ。
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139の
NGNGプログラム直さなきゃ……
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG「boost インストール」でググって見る。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG// 本出たね。Depthシリーズで。
0151デフォルトの名無しさん
NGNGどうでもいいって思ってるんじゃないの?<中の人
リリースするとバグだなんだっていろいろ言われて
ウザイだけだし。CVSならそのときにすぐ対応できるしね。
というわけで、CVS版をゲットしてメーリングリストにも
入って開発の流れをよく見るべきですな。
0152デフォルトの名無しさん
NGNGはいはい。ご自由に。
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGNovember 19, 2004 - Version 1.32.0
0155デフォルトの名無しさん
NGNGネタはもう良いって( ´,_ゝ`) プッ
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGうはー夢が広がりんぐ
0158デフォルトの名無しさん
NGNGhttp://www.gentoo-portage.com/dev-libs/boost
0159デフォルトの名無しさん
NGNGlibs/serialization/doc/release.html#Platforms
を参考にSPIRIT_ROOTを設定してbjamを実行しているのですが、
borland-C++-action bin\boost\libs\serialization\build\libboost_serialization.lib
\borland-5_6_4\debug\runtime-link-static\xml_grammar.obj
E:\boost_1_32_0\libs\serialization\build\../src/xml_grammar.cpp:
致命的エラー F1003 E:\boost_1_32_0\boost/spirit/core/config.hpp 56: error 指令:
"Compiler not supported. See note in <boost/spirit/core/config.hpp>"
*** 1 errors in Compile ***
"bcc32" -j5 -g255 -q -c -P -w -Ve -Vx -a8 -b- -DBOOST_TEST_NO_AUTO_LINK=1
-v -Od -vi- -tWC -WM- -DBOOST_ALL_NO_LIB=1 -w-8001 -I"bin\boost\libs\serializ
ation\build" -I"E:\spirit-1.6.1" -I"E:\boost_1_32_0" -o"bin\boost\libs\serial
ization\build\libboost_serialization.lib\borland-5_6_4\debug\runtime-link-static
\xml_grammar.obj" "E:\boost_1_32_0\libs\serialization\build\../src/xml_grammar.
cpp"
...failed borland-C++-action bin\boost\libs\serialization\build\libboost_seriali
zation.lib\borland-5_6_4\debug\runtime-link-static\xml_grammar.obj...
borland-C++-action bin\boost\libs\serialization\build\libboost_serialization.lib
\borland-5_6_4\debug\runtime-link-static\xml_iarchive.obj
E:\boost_1_32_0\libs\serialization\build\../src/xml_iarchive.cpp:
致命的エラー F1003 E:\boost_1_32_0\boost/spirit/core/config.hpp 56: error 指令:
"Compiler not supported. See note in <boost/spirit/core/config.hpp>"
*** 1 errors in Compile ***
っていわれちゃって。
どうも、元のboostを見に行っているらしく。
0160デフォルトの名無しさん
NGNG>>98
0161デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGboostの何を勉強したのか言って無いから範囲広すぎ
0170デフォルトの名無しさん
NGNGC++の勉強よりも前に、Cでこれを十分使いこなしてからC++に移行するのが正しい。
0171デフォルトの名無しさん
NGNG実際に使いたくなった時に該当箇所を詳しくリファレンスで見るだけで十分
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGboostの前にC++の勉強を真面目にしたほうが良いと思う。 Scott Meyersの
Effectiveシリーズあたりがいいかな。 オブジェクト指向プログラミングと
テンプレートの使い分けとか、C++固有の作法とか知らないとboostは使い
こなせない。 STLもだけど。 boostはかなりマニアックなライブラリもあるので
必要なものだけピックアップして使えばいい。 Modern C++ Designにあるような
テクニックは実際には使うべきではないと思う。 あまりに複雑すぎるし、途中で
破綻しているものもある。
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGていうか私もformatとこれら3つぐらいしか使ってない・・・
0176デフォルトの名無しさん
NGNG>Modern C++ Designにあるような
>テクニックは実際には使うべきではないと思う。
テンプレートライブラリを書こうと思うなら必須のテクニックなのでは?
またアプリケーションをテンプレートライブラリを作るかのように、
書くためのポリシーというテクニックを使いこなすためには、あの本のテクニックは
欠かせないですね。まあ私は使{い,え}ませんけど。
0177デフォルトの名無しさん
NGNG3時間でわかるBOOST
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGあの本はマニアック過ぎて。 もちろん使えるものもあるけど。
メモリーアロケータとかってデフォルトのnew演算子より遥かに遅かったりして。
シングルトンもなーんか訳わかんないし。 実際あの本をちゃんと判っている奴は
ほとんど居ないんじゃないか? 折れの指導教官も日本でソフトウェアエンジニアリング
をちゃんとわかっているやつは数えるほどしか居ないって言ってたし。 著者が
そのレベルまで達しているかは判らん。
あとC++を勉強するときにはエラーハンドリングもちゃんと勉強しておいた方がいい。
エラーハンドリングをちゃんと扱える奴ってあんまりいないからな。 そこらへんは
Exceptional C++に病的なくらいクドクドと書いてあるが。
0182デフォルトの名無しさん
NGNGtemplateの方では大騒ぎになっている。
http://sourceforge.net/project/showfiles.php?group_id=7586
0183デフォルトの名無しさん
NGNG残念、ここでも激しくガイシュツだ
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGVC6だと通るから謎すぎる
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGboost::socket なるものは存在するけど、
CVSでもsand-box扱い
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGアホかお前
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGPlatform SDKは導入してますか?導入してないとVCTKでは通りませんよ.
http://www.kmonos.net/pub/BoostBook/vctk.html
>201
1年後はゼッタイに無理.
0203Rubykich
NGNG0204デフォルトの名無しさん
NGNG山田君、座布団一枚追加してあげて
0205デフォルトの名無し
NGNG0206デフォルトの名無しさん
NGNGmingwと同じ。以上。
0208デフォルトの名無しさん
NGNGいれてあるよ。
ていうか1.31は全部通ってたしそういう問題はないと思う。
と、いまやり直したらregex通って代わりに
serializationが通らなくなった。
ワケワカンネェ
0209デフォルトの名無しさん
NGNG普通にforループでイテレータ使うのに比べて、10倍も遅いってどういうこと。
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNGthx。
そもそも-O3以上だからinline展開は当然されてるよな? と思ったが、アセンブリ出力を見るに
do_nothing()をcallしてる模様。
ライブラリに手を入れるのはパッケージが更新されたときに面倒そうだけど、お試しでやってみた。
...
わーお、書き換える前は11倍だったのが、7倍にまで短縮された。
5倍くらいにまで縮んだのもあるよー。
0212209=211
NGNGboost::lambdaのところだけ、その前のテストに使ってたstd::sort()が挟まってました。
std::sort()を抜くと、ほとんど差はありませんでした。
lambdaの中の人ごめんなさい。
210の人ごめんなさい。
>>1-1000 生きててごめんなさい。
0213209=211
NGNG単純なlambda式の場合、イテレータよりも早いです。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGebuildくれ
0217デフォルトの名無しさん
NGNG0218一星 ◆Cppn/.YI3.
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGhttp://www.gentoo-portage.com/dev-libs/boost
0221デフォルトの名無しさん
NGNGやめといたほうがいいかも。
http://bugs.gentoo.org/show_bug.cgi?id=74048
0222デフォルトの名無しさん
NGNG./tools/build/jam_src/bin.linux${arch}/bjam -j2 \ (1.31)
./tools/build/jam_src/bin.linux/bjam -j2 \ (1.32)
と${arch}が抜けています。
work以下のファイルを見ればtools/build/jam_src/bin.linuxx86/以下に
jam,bjamが生成されているので、これでは上手くいきません。
1.32のebuildを1.31のように修正(2箇所)したら上手くいきました。一応報告。
0223デフォルトの名無しさん
NGNG1.31はなんで上手くいくんだろ。わけ分らん。
0224デフォルトの名無しさん
NGNGいま、どーなってんの?>そこら辺。
0225デフォルトの名無しさん
NGNG少し前にcppllに流れてたねその話。
俺はboost::filesystemが責任を持ってwstringで返すのが正解だと思うよ。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG全然。
singletonとかabstractFactoryなんかはない。
>>227
boost::mplにリストがある
0229デフォルトの名無しさん
NGNGmplか、thx
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGISOの改訂が5年おきだから、次は2008年じゃないかと
0232デフォルトの名無しさん
NGNGどこかで見かけたんだけど、忘れてしまった。
0233デフォルトの名無しさん
NGNGttp://www.open-std.org/jtc1/sc22/wg21/docs/library_technical_report.html
0234デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGそうか?ライブラリで出来る事はなるべくライブラリにやらせた方が良いと思うけど。
個人的にはfunctionが嬉しい。
0237デフォルトの名無しさん
NGNG全部を言語でやれって言ってるんじゃなくて、
template<class A1> class list1
template<class A1, class A2> class list2
...
template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9
bind.hppでこういうことを書かなくて済むようにしてもらいたいなーってこと。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGなるほど。
でもboost::preprocessor使えば簡単に生成できる訳で…
0242デフォルトの名無しさん
NGNGじゃあboost::preprocessorも標準に入れちゃえばいいわけか。
# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_1(s, p, o, m) 0
# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_2(s, p, o, m) 0
...
# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_256(s, p, o, m) 0
……preprocessorの方がひどいやん。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG何のためにそうなっていると思っているんだ?
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG使い方をAPIレベルでざっと知りたいなら、財布と相談して買うか決めれ。
Boost内部のしくみや応用/実践的な使い方が知りたいなら、そういう本ではないので。
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG字面汚すぎ。
0251デフォルトの名無しさん
NGNGそんな事をしたら、ただでさえ規模の大きなC++よりも、もっと規模の大きな言語が必要にならないか?
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG無名関数とプリプロセッサの制御構造があれば、かなりいけるんじゃない?
0254デフォルトの名無しさん
NGNGエンジン臨界点までカウントスタート
0255デフォルトの名無しさん
NGNGそういう本かWEBサイトない?日本語で。
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG自然言語の説明を読めば方針が解かって、ソースを読む手助けになる。
0259デフォルトの名無しさん
NGNGさもなければ、camlかな。camlはCほどではないがC++よりは速いらしいよ。
オブジェクト指向でプログラミングしたければOCamlもある。
0260デフォルトの名無しさん
NGNGしかもそれに加えて無名関数とかも使いたいっていうことな
んじゃないの?
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG公式ページを翻訳かければ良いじゃん。
最近はweb翻訳があるから英語サイトなら直訳の駄文を更に意訳すれば大抵のサイトは読める。
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG英語は自然言語の部分。
日本語は自然言語の部分。
朝鮮語は(ry
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGハングルは文字ですが……。
普通は朝鮮語。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGその話を持ち出してくるって事は、あらすじ知ってるんだろう。
ここboostのスレッドだから、その話は別のところでやっとくれ。
0270デフォルトの名無しさん
NGNGいないでしょうか…
OS Xのgcc用にはbjamがあるので簡単なんだけどCW用
にはbjamがないのでどうしたらいいか誰か知りませんか?
0271デフォルトの名無しさん
NGNG俺はハングル講座で勉強していたが、いつも疑問に思っていた。
知ってるなら話の経緯を教えてくれ。
0272デフォルトの名無しさん
NGNG日本語でいうカタカナ、ひらがな、のようなモノか?
カタカナ講座、ひらがな講座、…ありえなくはないんじゃないか
0273デフォルトの名無しさん
NGNGhttp://lists.boost.org/MailArchives/boost/msg23812.php
0274デフォルトの名無しさん
NGNGそれにハッカーが誤用で悪の烙印を押されてるこんな世の中でNHKの番組名が「はいそうですか」とあてになるわけ無いだろ。
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG期毎の初回に小倉がやんわりとした説明してるけど、
要は「朝鮮語講座」もしくは「韓国語講座」っていうと北韓国もしくは南朝鮮な連中がギャアギャア騒ぐから、
ヘタレなNHKは「ハングル講座」って名前にして逃げてるってだけの話。
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG北朝鮮なんかまともな国じゃないんだから放っておけば良い。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGいつになるのやら…
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGorz
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGBOOSTって何か知ってる?
0288デフォルトの名無しさん
NGNGどうにか並程度まで引き上げる為のものだから
最初から超強力なライブラリを備えたDelphiにはそもそも不必要だよ。
0289デフォルトの名無しさん
NGNGboostを一からD言語用に書き直してもまだお釣りが来るくらいの未来。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGと、C++もBoostも全く理解できないアホが吠えております。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG自分がバカだからと言って、人に当たるのはよせ。
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG> XML error: not well-formed (invalid token) at line 38
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303仕様書無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGbetaって言葉はご存知ですか?
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG>>305 Betaってうってるんですか?
0308デフォルトの名無しさん
NGNG306:デフォルトの名無しさん:05/01/16 14:20:34
>>305 Betaってうってるんですか?
0309デフォルトの名無しさん
NGNG307:デフォルトの名無しさん:05/01/16 14:22:19
306:デフォルトの名無しさん:05/01/16 14:20:34
>>305 Betaってうってるんですか?
0310デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG>>303はβを買うつもりらしいが。
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
05/01/19 05:01:43これからはいかに活用していくかってことを皆考えてるの?
0315デフォルトの名無しさん
05/01/19 07:38:350316デフォルトの名無しさん
05/01/19 16:46:170317デフォルトの名無しさん
05/01/19 18:49:01ttp://boost.org/more/formal_review_schedule.html
0318デフォルトの名無しさん
05/01/19 22:08:130319デフォルトの名無しさん
05/01/23 21:10:59shared_ptr<Child> pChild;
SetChild(shared_ptr<Child> p);
};
struct Child {
weak_ptr<Parent> pParent;
0320デフォルトの名無しさん
05/01/23 21:19:50↓のように親が子供をもつんだけど、子供からも親へのバックポインタを
もつ場合の話です。
class Parent {
shared_ptr<Child> pChild;
public:
SetChild(shared_ptr<Child> p);
};
class Child {
weak_ptr<Parent> pParent;
SetParent(shared_ptr<Parent> p) { pParent = p; }
friend Parent;
}
Parent::SetChild(shared_ptr<Child> p) の中から Child::SetParent() を呼ぶ必要があるのに
呼び出せなくて困ってます。(shared_ptr<Parent>(this) とかやりたい・・・)
ってことで今は メンバ関数はあきらめて、↓のようなスタティックメンバ関数用意してます。
Parent::SetChild(shared_ptr<Parent> pThis, shared_ptr<Child> p) {
pThis->pChild = p;
p->SetParent(pThis);
}
他にうまい手があったらどなたかご教示ください。
0321デフォルトの名無しさん
05/01/24 00:31:39一応boostでは
#include <boost/enable_shared_from_this.hpp>
class Parent : public enable_shared_from_this<Parent>
としておけば、
SetChild(shared_ptr<Child> p) {
pChild = p;
pChild->SetParent(shared_from_this()); // shared_ptr<Parent>(this) を生成
}
と書けますが、shared_from_thisが有効なのは、呼び出し元のオブジェクトからweak_ptrが生成できる場合
(shared_ptr<Base>からの呼び出し)に限ります。
Parent p;
p.SetChild(...); // bad_weak_ptr
shared_ptr<Parent> p(new Parent);
p->SetChild(...); // OK
使い勝手は良くないですね
0322320
05/01/24 01:18:05情報サンクス。
enable_shared_from_this の実装みて感動しました。
自身を指すweak_ptr をメンバで隠しもってるんですね。
頭いいなあ。
0323デフォルトの名無しさん
05/01/26 19:36:16STLは正式に標準仕様に加えられたから遠慮なく使えるが
Boostはどうなのよ
0324デフォルトの名無しさん
05/01/26 20:03:16そうでもないよ
0325デフォルトの名無しさん
05/01/26 20:35:26スマートポインタ等は一部で使ってる
0326デフォルトの名無しさん
05/01/26 22:57:40使ってるよ。
次期標準ライブラリです。
と言ったら使わせてくれた。
0327デフォルトの名無しさん
05/01/26 23:07:380328デフォルトの名無しさん
05/01/27 02:10:17将来性のあやしいサードパーティー製のライブラリなんかよりは
ずっといいとおもうのだが、毛嫌いする会社もある
0329デフォルトの名無しさん
05/01/27 03:15:11出来ますが、libboost_filesystem でも、 mt やら sd やら 1_32 やらが色々
名前の後に付いている物が色々出来ますが、これらは一体どう違うのでしょう?
mt はきっと multi-thread なのかなぁとかは思うのですが、他が何の事やらさっぱり…
0330329
05/01/27 03:16:49http://www.boost.org/more/getting_started.html#Results
0331デフォルトの名無しさん
05/01/27 03:31:17場合についての質問です。
installするとライブラリがすべて-cw-の名前になるにもかかわらず、
-cw8-でリンクしようとするのは何故ですか?bjamの設定ファイルの
バグでしょうか?教えてください。お願いします。
0332デフォルトの名無しさん
05/01/27 07:59:42こういうものなのでしょうか? 引数は以下の通り渡しました
bjam -sTOOLS=vc-7_1-stlport "-sBUILD=release debug <runtime-link>static/dynamic <threading>single/multi <native-wchar_t>on" stage
0333デフォルトの名無しさん
05/01/27 11:36:430334デフォルトの名無しさん
05/01/27 22:44:270335デフォルトの名無しさん
05/01/28 21:37:46コマンドは
bjam -sTOOLS=vc7 "-sBUILD=release debug <runtime-link>static/dynamic <threading>single/multi <native-wchar_t>on" stage
でビルドしてます。serialization以外は上手く行くんですが、何故なんでしょうか?
よろしければ、助言お願いします。
//-------------------------------------------------------------------
// ビルドエラーメッセージ
//-------------------------------------------------------------------
...failed vc-C++ bin\boost\libs\serialization\build\libboost_wserialization.lib\
vc7\release\threading-multi\xml_wgrammar.obj...
vc-C++ bin\boost\libs\serialization\build\libboost_wserialization.lib\vc7\releas
e\threading-multi\xml_wiarchive.obj
xml_wiarchive.cpp
C:\mssdk\boost_net\boost\spirit\core\config.hpp(56) : fatal error C1189: #error
: "Compiler not supported. See note in <boost/spirit/core/config.hpp>"
"cl" /Zm800 -nologo /EHsc -c -DNDEBUG -DNDEBUG -DBOOST_TEST_NO_AUTO_LINK=1
/Ogity /O2 /Gs /Ob2 /EHsc /GR /MD /Op -Gy /Zc:forScope /Zc:wchar_t -I"bin\bo
ost\libs\serialization\build" -I"c:\Program Files\Microsoft Visual Studio .NET\
VC7\include" -I"C:\mssdk\boost_net" -Fo"bin\boost\libs\serialization\build\li
bboost_wserialization.lib\vc7\release\threading-multi\xml_wiarchive.obj" -Tp"C:
\mssdk\boost_net\libs\serialization\build\../src/xml_wiarchive.cpp"
...failed vc-C++ bin\boost\libs\serialization\build\libboost_wserialization.lib\
vc7\release\threading-multi\xml_wiarchive.obj...
...skipped <@boost!libs!serialization!build\libboost_wserialization.lib\vc7\rele
ase\threading-multi>libboost_wserialization-vc7-mt-1_32.CMD for lack of <@boost!
libs!serialization!build\libboost_wserialization.lib\vc7\release\threading-multi
>xml_wgrammar.obj...
0336デフォルトの名無しさん
05/01/29 00:50:58> Compiler not supported. See note in <boost/spirit/core/config.hpp>
0337デフォルトの名無しさん
05/01/29 22:05:210338デフォルトの名無しさん
05/01/29 22:20:33ウェイト入れても、CPU負荷が高めかも
漏れのやり方が悪いだけだろうか…
0339デフォルトの名無しさん
05/01/31 01:09:340340デフォルトの名無しさん
05/01/31 09:20:330341デフォルトの名無しさん
05/01/31 10:04:42だったらお前が作れ…ってそんなことしたら余計悪くなるかww
0342デフォルトの名無しさん
05/01/31 10:23:39それを Windows に当てはめようとしてイロイロ無理している感じ。
いっそのこと、.NET Fw か、Java のライブラリみたいにすればいいのではとも思う。
0343デフォルトの名無しさん
05/01/31 10:25:220344デフォルトの名無しさん
05/01/31 10:30:040345デフォルトの名無しさん
05/01/31 10:30:240346デフォルトの名無しさん
05/01/31 10:43:43boost::filesystemに持ち込まれても困る。
0347デフォルトの名無しさん
05/01/31 21:21:39boostにportableでミリ秒単位以上の性能があるsleepは無いですか?
0348デフォルトの名無しさん
05/01/31 21:25:23スレッドとかプロセスコンテキストで20msくらい余分に待たされたりしますとかそういうのはOKです。
でも1秒は途方に暮れるほど長すぎるかも…
0349デフォルトの名無しさん
05/01/31 22:02:02Windowsが圧倒的なシェア持ってるんだからしょうがない。
Linux板でシェアを増やそうというスレを見ていると、
LinuxはGUIを改善するべき→
GUIなんていらん。CUIの方が効率的→GUIは初心者に必要
→初心者なんてLinuxにはいらん→シェアを増やすには初心者が必要
→シェアなんて増える必要ない
という必ず不毛なネガティブループに陥ってるんだよなぁ。
0350デフォルトの名無しさん
05/01/31 22:14:46thread.sleep
0351デフォルトの名無しさん
05/02/03 02:25:120352デフォルトの名無しさん
05/02/03 16:41:080353デフォルトの名無しさん
05/02/14 20:11:080354デフォルトの名無しさん
05/02/20 15:54:32"let's boost" の"spirit"のサンプルを試したら、
「windows.hが見つからない」というエラーが出たので、
file_iterator.ipp 内で #include <windows.h>
するのを抑えるために、同ファイル内で
#undef BOOST_SPIRIT_FILEITERATOR_WINDOWS
したら通ったのですが、根本的な解決になってない気が。。。
0355デフォルトの名無しさん
05/02/21 13:48:48http://pc5.2ch.net/test/read.cgi/tech/1080916113/l50
windows.h で検索しる。
Beta なんだから boost の前にコンパイラのスレに行こうな…(´Д`)
0356デフォルトの名無しさん
05/02/22 23:28:07すみません今後気をつけます。
おかげさまで解決しました。
ありがとうございました。
0357デフォルトの名無しさん
05/02/23 15:41:200358デフォルトの名無しさん
05/02/23 15:51:53ttp://www.kmonos.net/pub/BoostBook/vctk.html
0359デフォルトの名無しさん
05/02/24 07:15:45bjam "-sTOOLS=bcb" --prefix="C:\Program Files\Borland\CBuilder6" install
でインストールしたところ、インクルードファイルのフォルダが
Include/boost-1_32/boost/
となってしまったのですが、
Include/boost/
にインストールするにはどうしたらよいのでしょうか?
それともこれは正常なのでしょうか?
いろいろなサンプルを見ると
#include <boost/random.hpp>
の様になっているのですが・・・。
0360デフォルトの名無しさん
05/02/24 09:14:43C:\Boost\include\boost-1_32\boost
にインストールされてるとして、IDEの設定もしくはMakefile等で
C:\Boost\include\boost-1_32
をインクルードパスに追加しとくと
#include <boost/random.hpp>
でインクルードできる。
それがいやなら手動で好きなとこにコピーしとけ。
0361デフォルトの名無しさん
05/02/26 00:00:23私も2005 ExpressにインストールしようとしたのですがbjamのsTOOLSにどのようなオプションを渡せばよいかわかりません。
2005はvc8ですが、vc8はbjamが「こんなパラメータしらんわ!」といいよるし、
2003と同じくvc7.1でやろうとすると、「vc7.1と違うだろうが!ゴラァ!」と突っ返されます。
インストールオプションをおしえてくだされ。
0362デフォルトの名無しさん
05/02/26 00:31:360364デフォルトの名無しさん
05/03/17 19:17:18namespace "_stl" has no memberエラーがたくさん、かんべんしてくれ〜
0365デフォルトの名無しさん
2005/03/31(木) 11:48:570366デフォルトの名無しさん
2005/03/31(木) 12:05:050367デフォルトの名無しさん
皇紀2665/04/01(金) 01:56:280368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
2005/04/11(月) 00:38:34ドキュメント読んだ限りじゃ、そんなところまで世話してくれなそうだったんだけど
俺環境はlinuxなので、シェルが勝手に*.txtとか展開してくれるんで、別に支障は無いんだけど、
プログラム側でそういうのも対応できたら嬉しい
自分でいちいちregexとか使って、パターンに合うファイル抽出しないといけないのかな
0370デフォルトの名無しさん
2005/04/11(月) 01:47:02そのあたりの議論がboost-mlにあります。
http://lists.boost.org/MailArchives/boost/msg46650.php
0371デフォルトの名無しさん
2005/04/11(月) 02:03:41Linuxだったら、
readdir(2)で、ディレクトリパス名を引数に持つctorがあるイタレータを、
regexをfind algorithmに。すぐできるよね。
0372デフォルトの名無しさん
2005/04/11(月) 08:06:470373デフォルトの名無しさん
2005/04/11(月) 11:37:55${bash}/lib/glob/*.[ch]
0374デフォルトの名無しさん
2005/04/11(月) 16:59:130375デフォルトの名無しさん
2005/04/18(月) 00:27:07多分できないと思うんですが…
例えば↓このような文字列があった場合に、
123(abc(...)def)456(...)789
(abc(...)def)
の部分にだけマッチさせたい、とかいう時です
単純に(.+)だと
(abc(...)def)456(...)
にマッチしてしまう
(.+?)にしたら
(abc(...)
の部分にマッチする
面倒なんでもう関数書いてやる事にしましたが、
こういう多少面倒なパターンマッチって可能なんですかね?
perlでも面倒臭そう
0376デフォルトの名無しさん
2005/04/18(月) 00:36:480377デフォルトの名無しさん
2005/04/18(月) 00:43:34正規表現で対応関係を表現することは(理論上、すなわち絶対に)出来ません。
0378デフォルトの名無しさん
2005/04/18(月) 01:00:01じゃいかんのけ?
0379デフォルトの名無しさん
2005/04/18(月) 01:15:37>>375は任意の深さの入れ子にマッチさせたいのであろう。
0380デフォルトの名無しさん
2005/04/18(月) 01:24:16\(.*?(\(.*?(\(.*?\))?.*?\))?.*?\)
とか。
0381デフォルトの名無しさん
2005/04/18(月) 01:42:19Perl(正規表現のためにPerlインタプリタを埋め込むのは馬鹿らしいけど)とか
C/C++用ならPCRE(Perl Compatible Regular Expressions)とか。
ttp://pcre.org/
0382デフォルトの名無しさん
2005/04/18(月) 01:57:42boost::regexにはそれはない。
0383375
2005/04/18(月) 02:13:24>>378
aaa(...)bbb(...)ccc
という文字列に対してそのパターンを使うと(...)bbb(...)にマッチしてしまう
自分は最初の(...)と、次の(...)にだけちゃんとマッチさせたかったので
つまり何をしたかったかというと、
一番浅い階層の括弧だけ見つけ出して(この時点じゃ、その中にまだ括弧が入ってるかどうかはどうでもいい)、
とりあえず除外しておく、残った部分の文字列を処理する
次に、さっき除外した部分の括弧に対して、今の関数を再帰的に呼び出して処理
これを繰り返して入れ子構造になった括弧を処理していく…、って事をしたかったわけです
あとやっぱこれくらいの処理だったら、
これのために知らないライブラリを新たに導入するよりは、
自分で適当な関数一つ書いちゃった方がいいかな
括弧の対応が取れてなかった場合はエラー出したいとかいうのもあるし
>>376
それ面倒臭そうだけど興味深い存在ではありますね
今度調べてみよっと…
0384デフォルトの名無しさん
2005/04/18(月) 07:24:450385デフォルトの名無しさん
2005/04/23(土) 18:34:47bjam -ほなやらら
とすると
spawn:No such file or directoryと出るんですが
どうすればいいですか?
0386デフォルトの名無しさん
2005/04/23(土) 18:39:03質問スレではありません
0387デフォルトの名無しさん
2005/04/23(土) 19:56:010388デフォルトの名無しさん
2005/04/24(日) 09:50:170389デフォルトの名無しさん
2005/05/04(水) 04:41:03struct foo {
int operator()(int x) const { return x; }
};
struct foo_visitor : boost::static_visitor<int> {
template <class T>
int operator()(T f) const { return f(0); }
};
に対して、
//boost::variant<foo> v(foo()); // エラー
boost::variant<foo> v; v = foo(); // OK
boost::apply_visitor(foo_visitor(), v);
なのはなぜでSKY? 使い方間違ってますか
0390デフォルトの名無しさん
2005/05/04(水) 05:33:480391デフォルトの名無しさん
2005/05/04(水) 12:12:500393デフォルトの名無しさん
2005/05/05(木) 11:40:36違うんじゃないか?
それは、
boost::variant<foo> v(foo(*)());
じゃないか?
0394デフォルトの名無しさん
2005/05/05(木) 14:30:27foo()というのは関数型ですけれど,これは関数の仮引数の型に指定されると
自動的に関数へのポインタ型に解釈されなおされるので.
0395デフォルトの名無しさん
2005/05/05(木) 18:45:250396デフォルトの名無しさん
2005/05/07(土) 02:15:07どうも参照カウント用オブジェクトをnewしてるshared_ptrの実装は無駄が多いように思えてintrusive_ptrを使っているんだけれど。
0397デフォルトの名無しさん
2005/05/07(土) 12:58:48クラスが自分の管理の方法について口を出すわけだから、その分柔軟性が下がるんじゃ内科?
この場合は単に「必要ないのに参照カウンタが付いてくる」程度の問題しかおきないだろうけど。
効率の確保のためだけにintrusive_ptrを使っているなら、boost::in_place_factoryでラップすることを考えてみてはどうだろう。
クラスの定義をいじることなしに、参照カウンタとオブジェクトをまとめて確保できる。
表記法が独特なのと、生ポインタからの変換ができないという欠点はあるが。
0398デフォルトの名無しさん
2005/05/07(土) 17:21:48weak_ptrのサポートの有無だと思うんですけれどね.
ただweak_ptrのサポートは非常に有益な場合もあれば,まったく不必要な場合もあるので
この理由だけでintrusive_ptrが推奨されているのかは分からないですけれど.
ここら辺もうちょっと詳しい議論どこかに落ちてないですかね?
>>397
前半は同意します.
後半は,それだとintrusive_ptrで十分な気がするんですがダメですかね?
あるいは単に外部で参照カウントを形成するタイプのスマートポインタが欲しいなら,
そういうスマートポインタ(ただしweak_ptrをサポートしない)を作ったほうが良くないですか?
0399398
2005/05/07(土) 17:31:58+この理由だけでshared_ptrが推奨されているのかは分からないですけれど.
0400398
2005/05/07(土) 17:41:58>そういうスマートポインタ(ただしweak_ptrをサポートしない)を作ったほうが良くないですか?
っていうかこれ意味不明ですね.無視してください.すいません.
0401デフォルトの名無しさん
2005/05/08(日) 02:52:30>boost::in_place_factoryでラップすることを考えてみてはどうだろう。
誰か具体的に教えてくれるとうれしいな。
0402デフォルトの名無しさん
2005/05/08(日) 04:03:32vs.push_back("aa");
vs.push_back("bb");
vs.push_back("cc");
for_each(vs.begin(), vs.end(), std::cout << boost::lambda::_1);
だとOKで、最後が
for_each(vs.begin(), vs.end(), std::cout << boost::lambda::_1 << std::endl);
だとコンパイルエラーになるのなんで?
0403デフォルトの名無しさん
2005/05/08(日) 04:11:570404デフォルトの名無しさん
2005/05/08(日) 04:16:390405デフォルトの名無しさん
2005/05/08(日) 04:19:42ちょっとした実験で書くときに短くさくっと書けるようにするもの>lambda
0406402
2005/05/08(日) 04:30:16lambda は、405さんのおっしゃる通り、実装中のダンプ用に使ってます。
0407デフォルトの名無しさん
2005/05/08(日) 04:40:20vector<std::string>::const_iterator it = vs.begin()
とか、iteratorの宣言がうざくなってくるからね。
for構文がtemplate野郎にやさしくなってくれると嬉しいと思う。
0408デフォルトの名無しさん
2005/05/08(日) 04:47:26typedef std::vector<std::string> hoge;
とかってやると iterator の宣言はあまりウザく無くなるが、
今度は typedef がウザくなってしまう罠
0409407
2005/05/08(日) 04:48:21#include <list>
#include <iostream>
using namespace std;
#define FOR(it, beg, end) for(typeof(beg) it = beg; it != end; ++it)
int main()
{
list<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
FOR(it, a.begin(), a.end())
{
cout << *it << endl;
}
return 0;
}
0410デフォルトの名無しさん
2005/05/08(日) 04:48:52wwwっwwwおkwwwwwwうはっwwwっうぇうぇwww
うはっwwwwwwっうぇおkwwwwwwwww
うぇwww
wwwwwwwwwwwwうぇwww
0411デフォルトの名無しさん
2005/05/08(日) 04:58:540412デフォルトの名無しさん
2005/05/08(日) 05:37:360413デフォルトの名無しさん
2005/05/08(日) 05:47:08FOR(footype it←スペース区切り?
##←これいらないんじゃない?
こんなの仕事で見たらぎょっとするし、
君が学生だったら単位はあげられないなあ。
0414デフォルトの名無しさん
2005/05/08(日) 05:53:030415デフォルトの名無しさん
2005/05/08(日) 05:54:53そりゃ教授じゃないからだろ
0416デフォルトの名無しさん
2005/05/08(日) 11:14:120417397
2005/05/08(日) 16:57:18俺が考えてたのは
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/370.c
こんな感じで、新しいスマートポインタを書くってこと。
0418デフォルトの名無しさん
2005/05/08(日) 17:12:30正規表現エンジンとか書いてたプログラマらしいけど。
0419デフォルトの名無しさん
2005/05/08(日) 23:34:47サンクス
0420デフォルトの名無しさん
2005/05/09(月) 13:06:27うーん。。。
なんとなくコンストラクタを直に呼んでる気がしてつい使っちゃう、とか、
= は引数が1個のときだけなので 2個以上と使い分けるのカコワルイとか、
C++ Primer 改訂3版 P.726 で推奨の書式と書いてあるから、とか。
本当は Boost.Variant のページのサンプルコードをコピペって
いじってたからですけど。今回のような落とし穴もあるので、
これからは = 使おうと思います。
0421デフォルトの名無しさん
2005/05/09(月) 13:50:410422デフォルトの名無しさん
2005/05/09(月) 20:27:35この場合に関してはコピーコンストラクタは呼ばれないんじゃ
ないですかね。
仕様書の 8.5 の #11,#14 あたりを読むと、foo() の 結果が
direct-initialization に使われるように読めます。
C++ Primer にも同じって書いてあるし、GCC4 で -O0 しても
呼ばれないし。
0423デフォルトの名無しさん
2005/05/09(月) 23:09:428.5-12 を読む限り、copy-initialization だと思うけど。
確かこれって、形としてはcopy-initialization だけど
direct-initialization として解釈することが
許されているって話じゃなかったっけ?
ttp://www.gotw.ca/gotw/027.htm
このソースは情報が古いのかもしれんが。
0424デフォルトの名無しさん
2005/05/10(火) 00:14:52考えるかの違いじゃない?8.5-12 からすると形式に対するものと考えた方がよさそう。
で、8.5-14 を解釈するところ以下のようになるかと。
から左辺の型が右辺と同じかその派生クラスである場合には、copy-initialization は direct-initialization
と同じ処理が行われる。
そうでない場合は、適当なコンストラクタ or 変換関数が起動される。コンストラクタの場合は
一時オブジェクトが生成される。この一時オブジェクトが左辺の direct-initialize に上のルールに
沿って使用される(結果としてコピーコンストラクタ呼び出しになると思われ)。
実装はある条件下で、途中結果で直接初期化対象を構築することで、このコピー処理を取り除いてもよい。
boost::variant<foo> は foo でも foo の派生クラスでもないのでコピーコンストラクタ呼び出しが発生しないとは
言えない(発生しない場合もある)のではないかと。
0425デフォルトの名無しさん
2005/05/10(火) 00:21:19×copy-initilization
○copy-initialization
×から左辺の型が…
○左辺の型が…
△実装はある条件下で、途中結果で直接初期化対象を構築することで、…
○実装はある条件下では、初期化されているオブジェクト内に途中結果を直接構築することにより…
0426デフォルトの名無しさん
2005/05/10(火) 00:47:48指摘ありがとん。やっぱ読み違えたか。
「一時オブジェクトが左辺の direct-initialize に上のルールに沿って使用される」
の辺りを読んで、コンストラクタ variant::variant(const foo&) の引数 foo 型に
対しての一時オブジェクトの話なのかと勘違いしました。
なんか仕様書のこの辺、ごちゃごちゃしてて分かりにくい…。
時間があるときにでも、もう一回ゆっくり読んでみまつ。
0427422=426
2005/05/10(火) 03:16:30すまんが、まとめさせてくれ。
もともと、V v(foo()) の替わりに V v = foo() と書かないのか?
という 395 氏に対して、俺は両者の動作に違いはないと思った
(なのでこれからは = を使う、と返した)のだが、
それに対して 421 氏が「= はコピーコンストラクタが起動する」と
両者の動作に違いがあるような指摘をしたために、てっきり V の
コピーについての話だと思ってたんだが、424 氏は「foo でも
foo の派生クラスでもない」というように foo のコピーの話をしている?
foo の一時オブジェクトが foo() で生成されて、v 内部の foo 型の
領域に copy-initialization されるのは分かります。それは別に
= を使わなくてもそうなるわけで。
424氏の解釈の部分は、初期化の挙動を説明していて、
「適当なコンストラクタ or 変換関数」→ V::V(const foo&)
「この一時オブジェクト」→ V 型の一時オブジェクト=「右辺」
「左辺」→ V 型の v
「上のルール」→ 右辺と同じかその派生クラスの copy-initialization は
direct-initialization になる
と考えられるので、ようするに、
V v((foo())); でも V v = foo(); でも V v = V(foo()); でも、
一時 foo オブジェクトから一時 V オブジェクトを経て、
左辺である v が direct-initialization される点で同じ、ってこと
だと解釈したんだが。
つまり、foo のコピーコンストラクタは(最適化されないなら)呼ばれ、
V のコピーコンストラクタは呼ばれない。また読み違えてるかなあ…。
もう完全に BOOST の話じゃなくてスマソ
0428デフォルトの名無しさん
2005/05/10(火) 03:37:45もうそれしか使わねえ
お手軽spiritのコンセプトに感動した
実装するのは大変なんだろうけど
0429デフォルトの名無しさん
2005/05/10(火) 09:30:07Exceptional C++ の項目42 「変数の初期化 ―― それとも?」 を読む限り
V のコピーコンストラクタは「呼ばれるかもしれない」
なぜなら、 foo 型と boost::variant<foo> 型は何の関係もない型だから
boost::variant<foo> v = foo();
は
boost::variant<foo> v(( boost::variant<foo>(( foo() )) ));
↑boost::variant<foo> 型の一時オブジェクトを作成する
という意味になる (が最適化によって直接初期化と同じになるかもしれない)
と思ったんだが、自信ないんで間違ってたら誰か指摘してくれ
0430デフォルトの名無しさん
2005/05/10(火) 10:35:11>V v((foo())); でも V v = foo(); でも V v = V(foo()); でも、
>一時 foo オブジェクトから一時 V オブジェクトを経て、
V v(foo()); は一時 V オブジェクトを経ない。
で、まあ、ある状況下においては、残りの二つでも
一時 V オブジェクトを取り除いても別にいいよ、ってこと
>424 氏は「foo でも
>foo の派生クラスでもない」というように foo のコピーの話をしている?
多分、424 氏は「foo は variant<foo> でもその派生クラスでもない」
ってことを書きたかったのでは?
foo のコピーコンストラクタは今の件とはあまり関係ないと思う。
0431デフォルトの名無しさん
2005/05/10(火) 16:02:550432422=426=427
2005/05/10(火) 16:07:378.5-12 で V v = foo() 形式が copy-initialization 形式であることを
押さえつつ、8.5-14 の「In certain cases, an implementation is permitted
to eliminate the copying inherent in this direct-initialization by
constructing the intermediate result directly into the object being
initialized.」をよく読めよ俺、ってことですね orz
12.6.1-1 にも例が書いてあるし。つーか、Primer の記述が一番紛らわしいよ…
0433デフォルトの名無しさん
2005/05/11(水) 17:45:46C++ Template Metaprogrammingと
The Boost Graph Library User Guide and Reference Manual
くらいしか見あたらない。
0434デフォルトの名無しさん
2005/05/11(水) 18:22:44preprocessorとかspiritなんかは系統立てた解説が欲しいね。
特にpreprocessorは公式が手抜き過ぎ。
0435デフォルトの名無しさん
2005/05/11(水) 18:47:01以下のようなキャストで、"boost::static_pointer_cast<>"を書きたくないのですが方法はありますか。
ダウンキャストになりますが、仕様上、整合性は保たれているので、できればキャスト指定を省略したいのです。
class CMyClass
{
};
class CMyClass2 : public CMyClass
{
};
void cast_test()
{
boost::shared_ptr<CMyClass2> smMyClass2( new CMyClass2 );
boost::shared_ptr<CMyClass> smMyClass1 = smMyClass2;
boost::shared_ptr<CMyClass2> smMyClass3 = smMyClass1; // ここでコンパイルエラー
// できればこの長いキャストをしたくない
boost::shared_ptr<CMyClass2> smMyClass4 = boost::static_pointer_cast<CMyClass2,CMyClass>( smMyClass1 );
}
0436デフォルトの名無しさん
2005/05/11(水) 19:05:09一つ言うと、型推論があるので
boost::static_pointer_cast<CMyClass2>(smMyClass1);
でいい。
でも多分C形式のキャストみたいなのを求めてるんだろうね。
0437デフォルトの名無しさん
2005/05/11(水) 21:58:12どうしたもんですかね。
BLLのplaceholderと共通化してくれると一番よいのだが。
0438デフォルトの名無しさん
2005/05/11(水) 22:08:36#include <boost/lambda/bind.hpp>
では駄目?
0439424
2005/05/11(水) 23:41:55ごめん、吊ってくる。
×から左辺の型が右辺と同じかその派生クラスである場合には
○右辺の型が左辺と同じかその派生クラスである場合には
×boost::variant<foo> は foo でも foo の派生クラスでもないので
○foo は boost::variant<foo>でもその派生クラスでもないので
0440デフォルトの名無しさん
2005/05/11(水) 23:56:310441デフォルトの名無しさん
2005/05/12(木) 00:44:40「整合性は保たれている」という情報はコンパイラの知りえない情報なので、無理。
0442デフォルトの名無しさん
2005/05/12(木) 08:44:13class Klass {
void method1(A a, B b, C c);
[...]
};
で
bind_obj(&Klass::method1, this)
とかすると(A,B,C)の3引数の関数オブジェクトを作ってくれるようなのが
あると嬉しいのですが。
0443435
2005/05/12(木) 09:04:01>>441
ありがとうございます。
>「整合性は保たれている」という情報はコンパイラの知りえない情報なので、無理。
operator=の記述などでなんとか回避できないかと思ったのです。
教えてもらった短いキャストでやろうと思います。
0444デフォルトの名無しさん
2005/05/12(木) 10:42:350445デフォルトの名無しさん
2005/05/12(木) 11:26:03Int2Typeに相当するのは、各種整数定数
bool_<>,int_<>,long_<>,size_t<>,integral_c<>
Type2Typeは、T自信を返すメタ関数という点では identity<> だが、
オーバーロードに絡んだディスパッチには enable_if<> がよく使われる
0446デフォルトの名無しさん
2005/05/12(木) 19:27:190447デフォルトの名無しさん
2005/05/12(木) 19:37:100448デフォルトの名無しさん
2005/05/13(金) 04:33:42ウソつくな。
0449デフォルトの名無しさん
2005/05/13(金) 05:52:32#include "boost/function.hpp"
template<class T, typename Signature>
boost::function<Signature> bind_obj(Signature T::* mf, T* obj);
struct S { int MF(int, bool, char const*) { return 0; } };
int main()
{
S s;
boost::function<int(int, bool, char const*)> x(bind_obj<S,int(int, bool, char const*)>(&S::MF, &s));
return x(0, false, "");
}
bind_obj の呼び出しでテンプレート引数の推測が効かないみたい。
↑のように明示的に指定してやると、 g++ 3.4.1 でコンパイルはできた。(まだ定義が無いのでリンクは無理)
だれか続き頼む。
0450デフォルトの名無しさん
2005/05/13(金) 12:53:22Klass obj;
A a; B b; C c;
boost::bind(&Klass::method1, &obj, _1, _2, _3)(a, b, c);
あるいは、
template <class R, class T, class A1, class A2, class A3>
boost::function<R (A1, A2, A3)> bind_obj(R (T::*mf)(A1, A2, A3), T* obj) {
return boost::bind(mf, obj, _1, _2, _3);
}
として、
bind_obj(&Klass::method1, &obj)(a, b, c);
0451デフォルトの名無しさん
2005/05/13(金) 13:57:58エレガントな実装はできないと思う。
# define BIND_OBJ_MAX_ARITY 8
# include <boost/bind.hpp>
# include <boost/preprocessor.hpp>
/* 戻り値型の指定のために実装用のboost::_biおよびboost::_mfi名前空間を使っている */
# define OVERLOAD_N(z, n, mfb_cv); \
template<typename R, typename T BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, typename A)> \
boost::_bi::bind_t<R, \
MFI_NAME(mfb_cv, n)<R, T BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, A)>, \
LIST(n)<boost::_bi::value<T *> BOOST_PP_ENUM_TRAILING_ ## z(n, ARGTYPE, !)> > \
bind_obj(R (T::*f)(BOOST_PP_ENUM_PARAMS_Z(z, n, A)), CV(mfb_cv) T *p) \
{ \
return boost::bind(f, p BOOST_PP_ENUM_TRAILING_ ## z(n, PLACEHOLDER, !)); \
}
# define PLACEHOLDER(z, n, _unused) BOOST_PP_CAT(_, BOOST_PP_INC(n))
# define MFI_NAME(mfb_cv, n) boost::_mfi::BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, mfb_cv), n)
# define ARGTYPE(z, n, _unused) boost::arg<BOOST_PP_INC(n)>
# define LIST(n) boost::_bi::BOOST_PP_CAT(list, BOOST_PP_INC(n))
# define CV(mfb_cv) BOOST_PP_TUPLE_ELEM(2, 1, mfb_cv)()
BOOST_PP_REPEAT(BOOST_PP_INC(BIND_OBJ_MAX_ARITY), OVERLOAD_N, (mf, BOOST_PP_EMPTY))
BOOST_PP_REPEAT(BOOST_PP_INC(BIND_OBJ_MAX_ARITY), OVERLOAD_N, (cmf, BOOST_PP_IDENTITY(const)))
0452デフォルトの名無しさん
2005/05/13(金) 23:00:17引数の数が違うと使えないのが嫌なんじゃないの?
>>442に「任意の型のメンバ関数に」って書いてあるのが、そういうことなんじゃないかな。
0453デフォルトの名無しさん
2005/05/19(木) 03:46:520454デフォルトの名無しさん
2005/05/19(木) 10:43:26皆様どうやって折り合ってるんでしょうか。
warning無視なんてできないし、
pragmaで消すのもコンパイラ依存で気持ち悪いし、手間だし、
私的には、これでは使いたくても使えない、printfでいいや('A`)って結論に落ち着いてしまうんですけども。
テンプレートとかよくわかんないんだけど、解決不能なんすか?
ぐぐってみると何年も前からある問題みたいな感じが。
0455デフォルトの名無しさん
2005/05/19(木) 11:23:350456デフォルトの名無しさん
2005/05/19(木) 14:16:10SFINAEは最新のコンパイラがやっとこさ対応している程度だし,
言語規格的にも曖昧なところが多いですから.
>>454
>pragmaで消すのもコンパイラ依存で気持ち悪い
どうしても気持ち悪いなら<boost/config.hpp>のマクロで環境切り分けるとかダメですか?
>手間だし
pragmaかましたヘッダを用意してそちらを常にincludeするとかダメですか?
0457デフォルトの名無しさん
2005/05/19(木) 22:16:30> 言語規格的にも曖昧なところが多いですから
解説きぼん。
0458デフォルトの名無しさん
2005/05/19(木) 23:03:08かなり無理っぽい気がしますが
0459デフォルトの名無しさん
2005/05/20(金) 01:58:33boost::bind(&string::substr,_1,_2,_3);
↑こんな感じでstring::operator+= を関数オブジェクトにしたいのだが断念。
しかたなく一行ファンクタを書いたのだが、悔しいのでだれか仇を討ってくれ。
0460デフォルトの名無しさん
2005/05/20(金) 10:06:55function<string& (string&, string const&)> を作れば良いのか?
0461デフォルトの名無しさん
2005/05/20(金) 12:55:40オーバーロードされてるので、どれ使っていいか教えてあげないと。
bind<string&,string,const string&>(&string::operator+=,_1,_2)
0462デフォルトの名無しさん
2005/05/20(金) 18:37:05曖昧という表現は微妙にまずかったです.
規格的には(14.8.2/2)で適用される場合が明確に列挙されていますし.
ただ,テンプレート引数への代入によって無効な型や構文が生成されるのは
(14.8.2/2)に列挙されている場合以外にもあるので,それらの扱いも明確にしてほしく,
そういう意味で曖昧だと書きました.(14.8.2/2)に列挙されている場合にも,
一部どういう扱いにするのか微妙な例が存在しますし.
いずれにせよ指定された名前が内部型と定義されているかどうかは
SFINAEとしてはかなり明確な部類なのでenable_ifの文脈にはあまり関係しないです.
すいません.
>>458
result_ofやtype_traitsってSFINAEが要ります?特殊化やsizeofハックでほぼ実装できませんか?
自分が知っている中でSFINAEを使用しているのは唯一boost::is_abstractだけです.
ただ,is_abstractが利用しているSFINAEは上で書いたような「規格で明言されていないもの」の一つですけれど.
0463デフォルトの名無しさん
2005/05/20(金) 22:34:21おおおおすげー動きました。どもありがとです。
おかげで二行もない関数の関数名をたくさん考えずにすみます。
0464デフォルトの名無しさん
2005/05/21(土) 00:32:44boost::mem_fn<string&,string,const string&>(&string::operator+=);
とか、そもそも
std::mem_fun_ref<string&,string,const string&>(&string::operator+=);
で十分なわけだが。
0465デフォルトの名無しさん
2005/05/23(月) 08:02:170466デフォルトの名無しさん
2005/05/23(月) 08:30:39ところでtypeofのformal review始まったね。
0467デフォルトの名無しさん
2005/05/23(月) 16:12:00variate_generator<mt19937, uniform_real<> >
rng(mt19937(29833u), uniform_real<>());
としましたら、ある環境では rng() で 0 から 1 の乱数が取得できるのですが、
別の環境では rng() で 0 しか返ってきません。両方ともインテルのコンパイラ icc です。
違うのはヘッダファイル群の置き場所が、
前者は /usr/local/boost 、後者は /usr/include/boost くらいです。
似たような現象が起こる方はいらっしゃいますか。
ちなみに、他の乱数(フィボナッチとか)では両方ともうまくいきます。
また、なぜこのようなことが起こるのか、ご存知の方がいましたら対処を教えてもらえませんか。
0468454
2005/05/23(月) 17:11:01コンパイラオプションで殺してしまったら、boost外の自分のコードの警告も隠れてしまって
まずいんと違いますか。
>>456
うう、やっぱりpragmaをどうにか入れ込んで折り合ってるんですね。
自分の趣向には合わないので、とりあえずformatの使用は保留することにします……。
0470デフォルトの名無しさん
2005/05/25(水) 10:17:30最適化しやすいように設計されているのでしょうか?
0471デフォルトの名無しさん
2005/05/26(木) 10:43:010472ヽ(´ー`)ノ ◆.ogCuANUcE
2005/05/26(木) 14:02:35sandbox に boost::socket があるよ。
どのレイヤーのネットワーク・プログラミングやりたいかにもよるけど、
TCP/UDP あたりで良いなら、libskstream は?
個人的には、C 関数を使った方が良いと思うがね。
0473デフォルトの名無しさん
2005/05/26(木) 14:21:090474デフォルトの名無しさん
2005/05/26(木) 14:39:550475デフォルトの名無しさん
2005/05/26(木) 14:42:54それも巨大なものとなると、どうも使うことを嫌がられるね。
テンプレートライブラリという解決方法は、UNIXの思想とも
一番マッチすると思う。
0476デフォルトの名無しさん
2005/05/26(木) 14:59:39ttp://www.cs.wustl.edu/~schmidt/ACE-users.html
採用例が産業・インフラ分野に偏ってるな。空母の自己防衛システムとか
0477デフォルトの名無しさん
2005/05/26(木) 17:44:33嫌な人はダメでしょう。
そもそも他に使うライブラリ、フレームワークとなじまないと辛いし。
0478デフォルトの名無しさん
2005/05/26(木) 19:56:510479デフォルトの名無しさん
2005/05/29(日) 09:59:350480デフォルトの名無しさん
2005/06/01(水) 23:00:40コンパイルする場合どちらが高速になると思いますか?
0481デフォルトの名無しさん
2005/06/01(水) 23:26:260482デフォルトの名無しさん
2005/06/01(水) 23:48:33買わない方がいいよ。
0483デフォルトの名無しさん
2005/06/02(木) 00:03:450484デフォルトの名無しさん
2005/06/02(木) 01:46:31VCでのコンパイルならAMDのぶっちぎりで
Pen4系は手も足も出なかったはず
PenD相手なら、AthlonXPでも勝てるかもよ
ちなみに日本の雑誌系メディアは
intelに不利なベンチは完全無視する傾向が強いから
日本のサイト回って情報集めても無駄かも
海外のサイトでは普通にコンパイル速度のベンチしてる
ちなみにAMDがメモリ帯域で不利だった時期には
あれほど重視していたメモリ帯域ベンチを
最近は黙殺に近い状態なのも、これが原因
0485デフォルトの名無しさん
2005/06/03(金) 14:39:370486デフォルトの名無しさん
2005/06/03(金) 19:51:300487デフォルトの名無しさん
2005/06/03(金) 20:28:04負荷がかかってない場合は優先度を上げても処理が速くなるわけではないみたいだったような、
ちゃんと検証したわけでないが。
0488486
2005/06/06(月) 19:07:50>>487
その方法だと、優先度を変更するような場合に、ちょっと厄介ですよね。
OSのAPIにあるように単純にプライオリティを設定できるインタフェースがないかなと思ったんですが、
やっぱりなさそうですね。
あと、threadを別のthreadからkillするインタフェースってあるんでしょうか? やっぱりない?
0489デフォルトの名無しさん
2005/06/08(水) 13:46:500490デフォルトの名無しさん
2005/06/08(水) 13:50:01(゚Д゚)ハァ?
0491デフォルトの名無しさん
2005/06/08(水) 14:09:36標準ライブラリを外部のライブラリが使って何が悪い。
0492デフォルトの名無しさん
2005/06/08(水) 17:50:06boost preprocessor ライブラリは素の C でも使える。
0493デフォルトの名無しさん
2005/06/09(木) 21:35:040494デフォルトの名無しさん
2005/06/09(木) 21:54:030495デフォルトの名無しさん
2005/06/09(木) 22:00:550496デフォルトの名無しさん
2005/06/09(木) 23:18:37GPLを敵視してる?そんなことないだろ。
0497デフォルトの名無しさん
2005/06/09(木) 23:44:130498デフォルトの名無しさん
2005/06/09(木) 23:47:51そういうことか。それなら確かに事実。
0499デフォルトの名無しさん
2005/06/10(金) 01:52:070500デフォルトの名無しさん
2005/06/10(金) 20:06:27検索してみたらバグがあったけど改善されたようなことがわかったんですが、
最新版のBoost(1.32.0 ttp://sourceforge.net/project/showfiles.php?group_id=7586 )の中のSpiritを使っても
エラーが出ました。ちなみにno_node_dをコメント化するとエラーは出ないようでした。
エラーメッセージは、
...\boost\spirit\core\non_terminal\impl\rule.ipp(190) :
error C2664: 'boost::spirit::impl::abstract_parser<ScannerT,AttrT>::do_parse_virtual' :
1 番目の引数を 'const boost::spirit::scanner<>' から 'const boost::spirit::rule<T0,T1,T2>::scanner_t &' に変換できません。
と出ます。
何が原因でしょうか?
0501デフォルトの名無しさん
2005/06/10(金) 22:42:53BCCのC++の規格への対応度が低いせい。
0502デフォルトの名無しさん
2005/06/10(金) 22:59:360503デフォルトの名無しさん
2005/06/10(金) 23:06:35諦めろ。
http://engineering.meta-comm.com/boost-regression/CVS-HEAD/developer/spirit.html
0504デフォルトの名無しさん
2005/06/10(金) 23:11:200505デフォルトの名無しさん
2005/06/11(土) 00:09:52何をしたいんだお前は
0506デフォルトの名無しさん
2005/06/11(土) 00:22:560507500
2005/06/11(土) 09:58:11コンパイラはVC7.1です。
他のを駆使して似た処理を作るしかないのか…
0508デフォルトの名無しさん
2005/06/11(土) 10:46:070509デフォルトの名無しさん
2005/06/11(土) 11:00:59spirit 使ったことないからよく分からんのだが rule の宣言はどうやってるの?
scanner は指定せずにデフォルトの scanner<> ?
さらっと流してみたところでは boost::spirit::rule<T0, T1, T2>::scanner_t が boost::spirit::scanner<> に
なるはずなんだけど。
0510デフォルトの名無しさん
2005/06/11(土) 11:45:15俺もVC7.1だけど、警告を3つ出しただけでノーエラーで通ったよ。
あ、ちなみにソースは"xml_grammar.hpp"をインクルードした空のmainだけど。
0511500
2005/06/11(土) 18:55:44STLport使うと何か変わりますかね?
ちょっとやってみます。
>>509
詳しくはわかりませんがruleは
#define RULE(x) rule<ScannerT, parser_context<>, parser_tag<ruleid_ ## x> > x;
とマクロを使って定義してます。
>>510
マニュアルを読んだときにxml_grammar.hppを知ったんですが、なぜか自分のには存在しなかったです。
libs/spirit/example/application/xmlにあると書いてあるようですが、
applicationフォルダから存在しないようです。
最新版のzipファイルの中をExpLzhで覗いてもありませんでした。
古いバージョンにしかないんですかね?
0512500
2005/06/11(土) 19:15:590513デフォルトの名無しさん
2005/06/12(日) 00:46:18その ScannerT は scanner<> の間違い?
0514デフォルトの名無しさん
2005/06/12(日) 22:20:50ast_calc.hppとかのサンプルのコピペだったと思います。
ちなみにscanner<>に変えてもエラーは出ました。
0515500
2005/06/16(木) 22:44:39rule<scanner<> > hoge; 〜 no_node_d[hoge]とするとエラーは発生せず、
rule<ScannerT> hoge; 〜 no_node_d[hoge]だとエラーが出ます。
やっぱりコンパイラかSpiritのバグが原因のような気がしたのであきらめることにします…
0516デフォルトの名無しさん
2005/06/17(金) 02:50:24hoge以下を分離して別のgrammarとして実装するのが一番楽な回避方法だと思います.
0517デフォルトの名無しさん
2005/06/17(金) 03:08:34rule<typename rebind_scanner_policies<ScannerT, match_policy>::type> hoge;
でいけませんかね?自分で実際に動かしてないので保証はしないですけれど.
後,hogeをno_node_dをかまさない文脈にも使いまわしていると上の方法では無理です.
その場合は516か,あるいはmultiple scannerという機構
http://www.boost.org/libs/spirit/doc/rule.html#multiple_scanner_support
を使うしかないです.でもmultiple scannerはdeprecatedされてた気が・・・
0518デフォルトの名無しさん
2005/06/17(金) 22:01:45scanner_base を継承してないとうまく動かないはずだけど…。
0519500
2005/06/18(土) 20:50:12試しにmultiple scannerというのを使ってみると確かに正常に動きました。
でも推奨されて無いものを使うのはできれば使いたくないので、
やっぱり分離するのが良さそうですね。
>>518
grammarを継承した構造体のメンバのdefinition構造体がテンプレートクラスで、
struct hogehoge : public grammar<hogehoge> {
... template<typename ScannerT> struct definition { ... }; ...
};
と、サンプルのtree_calc_grammar.hppと同じように定義しています。
実行時型情報を使って typeid(ScannerT).name() と表示させてみるともの凄く長くて、
class boost::spirit::scanner<char const *, struct boost::spirit::scanner_policies
<struct boost::spirit::iteration_policy, struct boost::spirit::ast_match_policy
<char const *, class boost::spirit::node_val_data_factory<struct boost::spirit::nil_t> >,
struct boost::spirit::action_policy> >
と出ました。
0520デフォルトの名無しさん
2005/06/27(月) 04:05:50E2489 オプションコンテキスト応答深度の上限を超過:再帰をチェックしてください
というのがmplまわりで大量に出てほとんどコンパイルできません
ていうかビルド必要ないlexical_castとかincludeしただけでも
そのソースをコンパイルする時に同じエラーが出まくりやがります…
VC++Toolkitあたりでコンパイルしてcoff2omfするくらいしか
手だてはないんでしょうか
0521デフォルトの名無しさん
2005/06/27(月) 04:07:06serialization使いたいんだけどなぁ(ノД`)
0522デフォルトの名無しさん
2005/06/27(月) 04:07:340523デフォルトの名無しさん
2005/06/27(月) 10:31:14boost::mplが全部が全部使えないという訳でもない。
しかしビルドが通らないというんであれば、使わない方がいいだろう。
http://engineering.meta-comm.com/boost-regression/CVS-HEAD/developer/mpl.html
0524デフォルトの名無しさん
2005/06/27(月) 10:31:54でも似たようなもんだな。
0525デフォルトの名無しさん
2005/06/28(火) 16:06:08COFF2OMFは万能ではない、ていうか無能なので
Borland環境でBoost利用するのは、現時点では諦める鹿?
困ったので漏れ、Boost使ってる部分はMingwでつくってDLLにして
BCBにリンクしたぞゴルァ
0526デフォルトの名無しさん
2005/06/29(水) 11:09:17なるほど…DLL化も検討してみます
しかしヘッダインクルードしただけで
templateの再帰深度が〜とかありえないBCC
0527525
2005/06/29(水) 11:42:49C ABIでラッパー書かないといけない罠
それとも COM化する? ウヒヒ オレハ ヤダネ
0528デフォルトの名無しさん
2005/06/29(水) 18:13:26そこまでするなら全部VC Toolkitにしちまえよ。
0529デフォルトの名無しさん
2005/06/29(水) 18:22:310530520
2005/07/01(金) 10:43:07いや〜趣味グラムとはいえWin32意識しててデバッガまで手軽に使える
BCCの存在意義はでかいとおもうんですよ
ていうかデバッガ無しでプログラム書ける人ってすごすぎる
0531デフォルトの名無しさん
2005/07/01(金) 18:49:530532デフォルトの名無しさん
2005/07/01(金) 19:48:460533デフォルトの名無しさん
2005/07/01(金) 21:13:02未だにprintfデバグに固執するやつのが蛸。
もっと時間を有効に使えよ。
0534デフォルトの名無しさん
2005/07/01(金) 22:20:380535デフォルトの名無しさん
2005/07/01(金) 22:24:53UnitTestのまちがいだろうか
0536デフォルトの名無しさん
2005/07/01(金) 22:49:030537デフォルトの名無しさん
2005/07/01(金) 23:43:57組み込み系のかたですか
小規模プログラムは楽でいいですね
0538デフォルトの名無しさん
2005/07/02(土) 00:25:290539デフォルトの名無しさん
2005/07/02(土) 11:45:49精神破綻を起こしたか…w
0540デフォルトの名無しさん
2005/07/02(土) 23:33:470541デフォルトの名無しさん
2005/07/03(日) 00:46:300542520
2005/07/03(日) 22:06:35実はC++BuilderXのトライアル版入れてBCC32ver5.6.4使ったら
ビルドはうまく行きました…が、ピンポイントでSerializationだけ
libが作れませんでした。もう諦めまう。
0543デフォルトの名無しさん
2005/07/03(日) 22:30:420544520
2005/07/05(火) 10:43:13おお!failed1つもなくビルドできました!プリミティブ型のシリアライズは問題なし、
しかしクラスのシリアライズしようとするとコケます…
#include <fstream>
#include <boost/archive/text_oarchive.hpp>
#pragma link "libboost_serialization-bcb-sd.lib"
class Foo {
int i;
friend class boost::serialization::access;
template< class Archive >
void serialize( Archive & ar, const unsigned int version ) {
ar & i;
}
public:
Foo():i(0xDEADBEEF){}
};
int main() {
Foo foo;
std::ofstream ofs( "data.txt" );
boost::archive::text_oarchive oa( ofs );
oa << foo;
ofs.close();
return 0;
}
こんなコードでoa << foo;がページ違反起こして落ちまする…
0545デフォルトの名無しさん
2005/07/05(火) 12:01:12collect2: ld returned 1 exit status
コンパイル時にこのようなエラーが出るのですが、何がいけないのでしょうか?
ライブラリのパスでしょうか?setenvで見てみると通っているのですが・・・。
0546デフォルトの名無しさん
2005/07/05(火) 16:16:57libboost_thread リンクしてるか?
0547デフォルトの名無しさん
2005/07/07(木) 10:13:480548デフォルトの名無しさん
2005/07/07(木) 13:14:00ググるといくつかヒットするけど
それじゃだめなの?
0549デフォルトの名無しさん
2005/07/13(水) 08:51:19引数はargument_type、
戻り値はresult_typeとあると思うんですが
boost::lambdaによって作られたファンクタで
それらに当たるものがみつけられません。
戻り値は、ファンクタ::sig< tuple<ファンクタ,ファンクタの引数型> >::type
だとわかったんですが、ファンクタの引数型がわかりません。
教えてください。
0550デフォルトの名無しさん
2005/07/13(水) 10:09:07std::cout << _1 /* ostreamに出力できる任意の型を取る */
bind<double>(std::atan2, _1, 2) /* doubleに変換できる任意の型を取る */
0551デフォルトの名無しさん
2005/07/13(水) 11:32:31template< typename Iterator, typename Function >
void f( Iterator begin, Iterator end, Function func )
{
Function::result_type sum = 0;
for( Iterator i = begin; i != end; ++i )
{
sum += func( *i );
}
}
STL標準のファンクタでしたらこういう書き方が出来るんですが
これをラムダで書き直そうとすると、
Function::sig< tuple<Function,??ファンクタの引数型??> >::type sum;
になってしまい、書くことが出来ません。
こういう場合どのように解決すればいいんでしょう?
引数型はわからない前提で何らかの工夫をすべきでしょうか?
0552デフォルトの名無しさん
2005/07/13(水) 12:00:27sigには実際に関数オブジェクトに渡す引数の型を渡す。
その例だと、
typedef typename std::iterator_traits<Iterator>::value_type argument_type;
typename Function::template sig<tuple<Function, argument_type> >::type sum = 0;
0553552
2005/07/13(水) 12:10:25typedef typename Function::template sig<tuple<Function, argument_type> >::type result_type;
typename boost::remove_cv<result_type>::type sum = 0;
0554デフォルトの名無しさん
2005/07/13(水) 12:48:53iterator_traitsという便利なものがあったんですね!
この部分は解決しそうです、ありがとうございました。
あと、もうひとつ聞きたいんですが、boost::lambdaで
コンパイルエラーをすると、エラーの説明が出ても
もの凄い量訳のわからない内容で打つ手無しになっちゃうんですが
皆さんはどうやって解決されてるんですか?
精通すると読み取れちゃうもんですか?
0555デフォルトの名無しさん
2005/07/13(水) 12:56:01基本的には552さんの言うとおり実際に関数オブジェクトに渡す引数の型ですが,
より厳密には呼び出されるoperator()の引数のシグネチャから参照のみを外したものになります.
つまりsigに指定するファンクタの引数型は必要に応じてconst or volatile修飾してやる必要があります.
これはoperator()が引数の非const参照とconst参照の差異に基づいて
overloadされている可能性を考慮しているためです.
struct F
{
int &operator(int &x);
int const &operator(int const &x);
template<class FArg> struct sig;
template<> struct sig<tuple<F, int> >{ typedef int &type; };
template<> struct sig<tuple<F, int const> >{ typedef int const &type; };
};
http://boost.cppll.jp/HEAD/libs/lambda/doc/ar01s05.html
の"The sig template"のところにもうちょっと詳しいことが書いてあります.
>>553
参照も付く可能性があるのでちゃんとやるならremove_referenceもかけないとまずいと思います.
自分は面倒なのでremove_reference -> remove_cvをやるメタ関数定義して使ってます.
template<class T>
struct plain : public remove_cv<typename remove_reference<T>::type>{};
0556デフォルトの名無しさん
2005/07/13(水) 13:02:54自分はエラーメッセージをフィルタするスクリプト書いて,それ通して読んでました.
tupleの尻尾についてくるnull_type消しただけでもかなり読みやすくなった覚えがあります.
0557デフォルトの名無しさん
2005/07/13(水) 15:17:38参考になります。
ありがとうございます。
boost::lambda::bindでやっても
boost::bindでやっても
基本的なメンバ関数呼び出しのファンクタが
作れず、ずっと悩んでいたんですが
原因がメンバ関数呼び出し規約をthiscallではなく
__stdcallにしていた為でした。(VC++2003)
なぜそうなのか理由はわかりませんが、
もう限界です。さようならlambda
0558デフォルトの名無しさん
2005/07/13(水) 20:17:47と
libboost_xxxxxx.lib
ってこの違いに何か意味があるの?
0559デフォルトの名無しさん
2005/07/13(水) 23:38:130560デフォルトの名無しさん
2005/07/19(火) 16:57:180561デフォルトの名無しさん
2005/07/19(火) 18:41:59Longhornまでには入れと言いたい
0562デフォルトの名無しさん
2005/07/20(水) 04:05:300563デフォルトの名無しさん
2005/07/21(木) 01:35:560564デフォルトの名無しさん
2005/07/21(木) 04:38:110565デフォルトの名無しさん
2005/07/21(木) 09:21:030566デフォルトの名無しさん
2005/07/21(木) 13:48:020567デフォルトの名無しさん
2005/07/28(木) 19:48:30Observer/Observableモデルを提供するクラスがあります。
例えばObservableにObserverを追加する実装は次のようになっています(CMagazine 2002/11)。
typedef boost::shared_ptr<Observer> shared_t;
typedef boost::weak_ptr<Observer> weak_t;
typedef std::vector<weak_t> observers_t;
void Observable::addObserver(shared_t observer) {
observers_t::iterator iter = observers_.begin();
while( iter != observers_.end() ) {
shared_t target = iter->lock();
if ( !target ) {
iter = observers_.erase(iter);
} else if ( target == observer ) {
return;
} else {
++iter;
}
}
observers_.push_back(observer);
}
こういう実装でCMainFrameをObserverから継承しているのですが
MFCがCMainFrameを確保してしまうためnew CMainFrameできず、
Observableのリストに追加するいい方法が思いつきません。
void CMainFrame::hoge {
someobservable->addObserver(this) // こうしたい
}
こういうときどうすればいいのでしょうか?
0568デフォルトの名無しさん
2005/07/28(木) 21:14:57shared_ptr に delete されるのが困るってことなら、
struct null_deleter
{
void operator()(void const*) const {}
};
class CMainFrame
{
....
boost::shared_ptr<CMainFrame> this_;
CMainFrame() : this_(this, null_deleter()) {...}
};
void CMainFrame::hoge() {
someobservable->addObserver(this_);
}
こんな感じか?試してないが。
0570デフォルトの名無しさん
2005/08/10(水) 10:48:25"ちゃねらーとして、boost 使ってますと自称できるレベルはどのくらいか"
// ぁあ、書いてしもうた…とうとう書いてしもうた…
0571デフォルトの名無しさん
2005/08/10(水) 11:17:28そんなもん boost 使ってたら自称できるだろ。
「 boost ?使ってますよ。まだ boost::noncopyable だけですが。」っていう奴に
「それじゃぁまだまだ boost 使ってますと自称できるレベルじゃないね」とか偉そうに言いたいわけ?
0572ワル鑑定士 ◆oKLssLV2YM
2005/08/10(水) 13:38:07「 boost ?使ってますよ。まだ __cdecl regcompA だけですが。」っていう漏れが、
「それじゃぁまだまだ boost 使ってますと自称できるレベルじゃないね」とか偉そうに[言われ]たくないわけorz
0573デフォルトの名無しさん
2005/08/10(水) 13:47:47boost はもちろん、便利だし、便利そうだから使う
ところで将来、boost で上みたいに質問したくなったとき、「こんくらい知っとけよ俺」みたいなレベルもあるかなと
0575デフォルトの名無しさん
2005/08/10(水) 14:03:14boostは雑多なライブラリ集合体だからなあ
つまみ食いするのが正しい使い方としか
正直ちょとほっとした わっかんねえ内は何もかもが有機的につながって見えるからなあ
iter やpred といった指向性は一貫してるとしてもだ
0577デフォルトの名無しさん
2005/08/10(水) 14:54:21漏れをSTL/boost の新世界からずっとずっと締め出していたorz
(boost じゃないが)(例えば)std::map の存在を知りながら
ぼろぼろの自作のclass mymap できこきこ走ってきた…
そうまさに、全て把握して使えなくたって、いいんですよね 自信ないですが、そう思いたい
(でもま、人様の技量レベル標準てのはやっぱ気になるですけどね、先々質疑に参加したいなら)
0579デフォルトの名無しさん
2005/08/10(水) 15:33:52マルチバイト文字列をワイド文字列のように扱うイテレータとか簡単に出来る。
class mbcs_iterator
: public boost::iterator_adapter
< mbcs_iterator, uchar_t const *, wchar_t, boost::forward_traversal_tag, wchar_t >
{
typedef boost::iterator_adapter< ... > base_type;
public:
mbcs_iterator( uchar_t const * p ) : base_type( p ) {}
void increment()
{ base_reference() = _mbsinc(base()); }
wchar_t dereference() const
{ return _mbtowc( base(), MB_CUR_MAX ); }
};
みたいな。
STL にありそうでないんだなと思ったってことです
// 技量の話にこだわれば、漏れのレベルは、上のサンプルみて、いわゆる拒否反応はないが、
// それでさっそくどう使えるかはさっとコード書けない しかし、「それ面白そうやな」ということは読んで取れる
0581デフォルトの名無しさん
2005/08/10(水) 16:09:07C++なんてほとんどの人が使えなくなっちゃうよ。
「それじゃぁまだまだ boost 使ってますと自称できるレベルじゃないね」
なんて言われたとしても笑ってスルーしとけばいいんじゃない。
0582デフォルトの名無しさん
2005/08/10(水) 16:15:05いざってときは、多少なりともSTL の助けがあることも
0584デフォルトの名無しさん
2005/08/10(水) 17:02:51初心者歓迎スレに、丁度テンプレートの話題が出てるよ。
試しに読んでみたら?
0585デフォルトの名無しさん
2005/08/10(水) 17:30:38ざっと覗いてきたですよw あとで何度も精読するとして
boost の話題としては、ほんとはじめての頃、 _1 って何よとかオモタw
それと、そうだ、初心者ならではの、かつboost な質問:
「lambda は凄く便利そうで、早晩気に入りそうだが、精神的に依存しきってしまって大丈夫かw」
慣れるまではむちゃくちゃに援用しそうな、今からもはや恥ずかしい悪寒ですがw
0587デフォルトの名無しさん
2005/08/10(水) 22:01:34> boost は、あくまで手段の一つであって使うこと自体に意味はないんじゃね?
いやいや、俺はboostだけで飯が三杯喰えるよ、だからどうってわけじゃないけど
0589デフォルトの名無しさん
2005/08/11(木) 02:15:35知悉する必要はないがどういうものがあるかという概要くらいは
使わなくても頭に入れておいて損はない。
存在を知らないと、ここであれ使って簡単に済ませられそうかなあ……調べてみよ、
とかも思い付かないと思う。
0590デフォルトの名無しさん
2005/08/11(木) 11:45:03>相性の悪かったりするものもある。
くあしく
0591589じゃないが
2005/08/11(木) 14:02:56boost::lambdaとboost::bindを同時に使おうとすると_1などが名前の衝突起こす。
まあboost::lambda::bindに統一すりゃいいんだが。
そういうことじゃなかったらすまん。
0592デフォルトの名無しさん
2005/08/11(木) 16:23:35lambdaの_1はboost::lambdaに属しているのに...
0593デフォルトの名無しさん
2005/08/11(木) 16:27:02齧っておいて損はないと思いながら未だ拾ってもいないのだが、
stlで飽き足らない技術者向けの解説サイトはないもんだろか。
#後は入手先とか情報がまとまってるとかね。
0594デフォルトの名無しさん
2005/08/11(木) 18:53:10http://www.kmonos.net/alang/boost/
0595デフォルトの名無しさん
2005/08/11(木) 20:00:15もっと詳しく知りたい。
例のバイブルも導入にはいいけど、細かい話がないし。
結局、ソース嫁って結論なのかね。
0596593
2005/08/11(木) 20:08:59さっき検索して見つけたから後で自宅で読もうと思ってマークしてたのが丁度そこだった。
>595によると不足だそうだけど、取り敢えず読んでみるよ。THX!
0597デフォルトの名無しさん
2005/08/11(木) 20:41:16その前にドキュメント読めよ。
0598デフォルトの名無しさん
2005/08/11(木) 22:17:040599デフォルトの名無しさん
2005/08/11(木) 22:30:58Cryoliteたんのとことかp_stade;とかはけっこう面白いネタやってて好き。
あと、ここもエキスパートな人見てくれてると思うんで、よっぽど変な
聞き方しなければレスつくと思うよ。
0600デフォルトの名無しさん
2005/08/12(金) 17:24:52で、何が変わったの?
0601デフォルトの名無しさん
2005/08/12(金) 19:23:010602デフォルトの名無しさん
2005/08/12(金) 19:34:14まあとりあえずダウンロードしてみるか
なにげにハッシュコンテナのサポートが嬉しい。
Regex++はPerl拡張構文サポートが結構充実した感じ?
個人的にはDFAとかAC法、CW法なんかの文字列照合ライブラリの拡充を希望したい。
0604デフォルトの名無しさん
2005/08/12(金) 20:02:41filesytemはどうなったんだろう...
0605デフォルトの名無しさん
2005/08/12(金) 21:39:40いきなりソース読んでみるしかないんだが・・・boostは難しいな。
土日全部使うか。
0606デフォルトの名無しさん
2005/08/12(金) 22:04:180607デフォルトの名無しさん
2005/08/12(金) 22:43:14MinGWには何の問題もなくインストできたが、VC++.NETでは
「メモリが足りんぞー」
エラーメッセージが何度も出てくる。
とりあえずライブラリは出来たようだが、本当に使えるんだろうか?これ。
0608デフォルトの名無しさん
2005/08/12(金) 22:45:230609デフォルトの名無しさん
2005/08/12(金) 22:58:03鼻血出そう
0610デフォルトの名無しさん
2005/08/13(土) 01:47:15いや勉強はずっとしてるんだけど、いくらやっても読めないものは読めないw
ソース読んでライブラリを理解してからじゃないとドキュメントの意味がわからんってのも
すごい話だけどな。
0611デフォルトの名無しさん
2005/08/13(土) 05:11:59そりゃ勉強してるつもりでしてないか、勉強法が悪すぎるかじゃないか。
0612デフォルトの名無しさん
2005/08/13(土) 07:44:18610は日本語のドキュメントで意味がわからなくて、
ソース読むタイプだと思うよ。
0613デフォルトの名無しさん
2005/08/13(土) 08:01:12610はソース読んでも意味が分かってないタイプだと思うよ。
0614デフォルトの名無しさん
2005/08/13(土) 10:18:20後ろの改行が一つ多いんだ?
ということは、微妙な英語のニュアンスがわからない漏れは、何か重要で繊細な何かを
読み落として損してる悪寒…orz
// ↓一行空けw
0616デフォルトの名無しさん
2005/08/13(土) 12:41:22こっちはVC++.NET2003とSTLPortだとWaveがビルドできなかった。
VC++.NET2003だけだとOK。
末尾は改行入れ「ない」習慣をCやC++でやられるよりはいいんでね?
0619デフォルトの名無しさん
2005/08/13(土) 14:14:53実際のところどうなの?
0620デフォルトの名無しさん
2005/08/13(土) 15:00:570622デフォルトの名無しさん
2005/08/13(土) 17:24:185.0系は#define _STLP_LEAKS_PEDANTICしてビルドするとリークしないらしい。
0623デフォルトの名無しさん
2005/08/13(土) 17:39:42PEDANTIC(知ったかぶり)ってのが中の人の見解を如実に表してる希ガス
7.1からだいぶ増しになった。某ランドも乗り換えるらしいじゃん。
0626デフォルトの名無しさん
2005/08/13(土) 20:08:38出来ないね。RegexとかThreadとか。
0627デフォルトの名無しさん
2005/08/13(土) 21:11:214.5.系使えとか言われてなかったっけ?
0628デフォルトの名無しさん
2005/08/14(日) 01:30:23コンパイルしているときかならずcl.exeがBuffer overrun detectedと書いてある
ダイアログを表示してくるのですが何かの演出ですか?
0629デフォルトの名無しさん
2005/08/14(日) 01:43:15マニュアルの3行目位まで読んだ限りでは
spiritの進化版っぽいけどそれでOK?
0630デフォルトの名無しさん
2005/08/14(日) 01:52:100631デフォルトの名無しさん
2005/08/14(日) 01:52:45次の段落ぐらいまで読めば何のライブラリかぐらいは分かるはず
0632デフォルトの名無しさん
2005/08/14(日) 11:52:520633デフォルトの名無しさん
2005/08/14(日) 17:39:480634デフォルトの名無しさん
2005/08/14(日) 17:58:110636デフォルトの名無しさん
2005/08/15(月) 19:06:000637デフォルトの名無しさん
2005/08/21(日) 11:08:35int_p のセマンティックアクションで、std::vector に取得した数値をpush_back
したいのですが、分かりやすい方法だと、vector<int>:push_back のラッパ関数を作って、
それをセマンティックアクション関数としますが、
直接push_backをコールすることは出来ないでしょうか?:
// global
vector<int> v;
// grammar 派生クラスのコンストラクタ内
my_rule = int_p[&v.push_back];
こんな感じでかけないでしょうか?
上記コードだとコンパイルエラーになります。
>sp.cpp:36: error: no match for 'operator[]' in 'boost::spirit::int_p[ v.push_back]'
0638age
2005/08/21(日) 11:09:480639デフォルトの名無しさん
2005/08/21(日) 12:50:14メンバ関数ポインタと bind 使えばできるんじゃないかな?
記述が泥臭くなりそうだけど。
0640デフォルトの名無しさん
2005/08/21(日) 13:49:41push_back_aは試してみました?
my_rule = int_p[push_back_a(v)];
ドキュメントとしては
http://www.boost.org/libs/spirit/doc/predefined_actors.html
の"Append values to a vector (or other container)",ソースの例としては
http://www.boost.org/libs/spirit/example/fundamental/number_list.cpp
とかが参考になるかと.
0641デフォルトの名無しさん
2005/08/21(日) 13:50:28http://spirit.sourceforge.net/distrib/spirit_1_8_2/libs/spirit/doc/predefined_actors.html
に"push_back_a(ref)"という定義済みアクションが説明されています。これを使用すればよいのでは。
my_rule = int_p[.push_back(v)];
のような記述になると思います。
0642デフォルトの名無しさん
2005/09/02(金) 16:30:08最初間違って -sTOOLS=vc7 としたら、
>>628 の症状を食らった。
後で気付いて -sTOOLS=vc-7_1 でやり直したら、まったく平気だった。
0643デフォルトの名無しさん
2005/09/06(火) 09:47:52普通の zip パッケージで十分な気がするけど、意味あるのかな?
0644デフォルトの名無しさん
2005/09/08(木) 00:58:42ソフトのインストールに許可が要る会社では(既にcygwinを入れてる場合)
許可取る手間が省ける希ガス
0645デフォルトの名無しさん
2005/09/15(木) 08:47:310646デフォルトの名無しさん
2005/09/15(木) 09:04:230647デフォルトの名無しさん
2005/09/15(木) 09:10:49釣られてんなー。
0648デフォルトの名無しさん
2005/09/15(木) 14:15:36結局自前でファイル名のvectorを返すクラスを作る羽目になる。
0649デフォルトの名無しさん
2005/09/15(木) 15:32:090650デフォルトの名無しさん
2005/09/15(木) 17:07:07vectorを作っとくって選択肢もあると思うよん。
0651デフォルトの名無しさん
2005/09/15(木) 18:02:500652デフォルトの名無しさん
2005/09/15(木) 18:58:360653デフォルトの名無しさん
2005/09/15(木) 19:14:20filesystem はともかく、algorithm/string の方は何か問題ある?
0654デフォルトの名無しさん
2005/09/15(木) 21:09:29trimとかstarts_withみたいな対象位置が固定されてるの以外はたぶん全部アウト。
shift_jisだと2バイト目にASCIIが来ることがあるから。
0655デフォルトの名無しさん
2005/09/15(木) 21:33:58wchar_t の文字列を扱う分には OK?
0656デフォルトの名無しさん
2005/09/15(木) 21:51:29OK。
regexとかもそうやって使うのが普通になっちゃってると思う。
でも全体をUnicodeにしようとすると、
wchar_tへの対応がboostどころか標準ライブラリまで中途半端なんだよね…
0657デフォルトの名無しさん
2005/09/15(木) 22:00:040658デフォルトの名無しさん
2005/09/15(木) 23:13:14外の世界とやり取りする時にNFCとかしないとどうにもならないもんな。
0659デフォルトの名無しさん
2005/09/17(土) 16:33:23仕様にしたのでしょうか?
#include <boost/intrusive_ptr.hpp>
struct A {
int count;
A() : count(0) {}
};
void intrusive_ptr_add_ref(A* a) {
++a->count;
}
void intrusive_ptr_release(A* a) {
if ( --a->count == 0 )
delete a;
}
void foo(boost::intrusive_ptr<A> p1, const A* p2) {
p1 == p2;
}
0660デフォルトの名無しさん
2005/09/18(日) 01:06:480661デフォルトの名無しさん
2005/09/18(日) 08:16:17void foo(boost::intrusive_ptr<A> p1, A* const p2) {
p1 == p2;
}
0662デフォルトの名無しさん
2005/09/18(日) 15:08:030663デフォルトの名無しさん
2005/09/18(日) 16:07:55いや、「はなじまん」であって「はなぢまん」ではない。
つまり、「花自慢」だ。
0664デフォルトの名無しさん
2005/09/18(日) 17:04:06おまけで生ポインタとの比較演算子を入れて中途半端になっただけじゃない。
const A* だけじゃなくて、Aの基底クラスへの生ポインタとも比較できないし。
boost::shared_ptrやstd::auto_ptrも生ポインタとの比較演算子は定義していないよ。
0665デフォルトの名無しさん
2005/09/18(日) 19:27:37C:\boost_1_33_0>bjam -sTOOLS=vc-7_1 --prefix="C:\Program Files\Microsoft Visual
Studio .NET 2003\Vc7"
Building Boost.Regex with the optional Unicode/ICU support disabled.
Please refer to the Boost.Regex documentation for more information
(and if you don't know what ICU is then you probably don't need it).
Jamfile:249: in load-jamfiles
*** argument error
* rule stage ( name : sources + : requirements * : local-build * )
* called with: ( include/boost-1_33 : : <locate>C:\Program Files\Microsoft Visu
al Studio .NET 2003\Vc7 <tree-subdirs>C:\boost_1_33_0 <target>all : <suppress>tr
ue )
* missing argument sources
C:\boost_1_33_0\tools/build/v1\boost-base.jam:2329:see definition of rule 'stage
' being called
C:\boost_1_33_0\tools\build\v1\bootstrap.jam:21: in boost-build
C:\boost_1_33_0\boost-build.jam:16: in module scope
C:\boost_1_33_0>
0666デフォルトの名無しさん
2005/09/18(日) 20:48:250667デフォルトの名無しさん
2005/09/18(日) 21:48:160668デフォルトの名無しさん
2005/09/18(日) 21:55:51今は、MacOSのをビルドしている。
0669デフォルトの名無しさん
2005/09/21(水) 04:57:08ビルドできない理由にはどんなのがあるでしょうか。pathとかに何か余計な事書いてあるのかな。
0670デフォルトの名無しさん
2005/09/21(水) 12:54:53bjam -sTOOLS=vc7_1
vc7.1→vc7_1
0671デフォルトの名無しさん
2005/09/21(水) 16:04:27ttp://www.boost.org/more/getting_started.html
0672デフォルトの名無しさん
2005/09/21(水) 16:37:580673デフォルトの名無しさん
2005/09/21(水) 17:33:47Boostは相当難解なマニュアルをよまなきゃ使えないから。
せめてエラーメッセージから問題を解決する糸口をつかめる
ようでなきゃダメ
0674デフォルトの名無しさん
2005/09/21(水) 17:46:140675デフォルトの名無しさん
2005/09/22(木) 08:33:40BOOST_LIB_NAMEが
unix_test_frameworkになってるんだが、
boost_unit_test_frameworkの間違いだよね?
0676デフォルトの名無しさん
2005/09/23(金) 00:06:16とりあえずboost::functionで回避できたから良かったけど。
0677デフォルトの名無しさん
2005/09/23(金) 00:35:04boost::crefとか
0678デフォルトの名無しさん
2005/09/23(金) 01:09:180679デフォルトの名無しさん
2005/09/23(金) 01:38:150680デフォルトの名無しさん
2005/09/23(金) 10:22:230682デフォルトの名無しさん
2005/09/23(金) 10:52:41もしかして: toast
0683デフォルトの名無しさん
2005/09/23(金) 13:54:43> toost::山崎パン
m9(^Д^) プギャー
0684デフォルトの名無しさん
2005/09/23(金) 14:00:520685デフォルトの名無しさん
2005/09/23(金) 20:25:590686デフォルトの名無しさん
2005/09/23(金) 20:29:59boostが標準化されるといううわさは何だったんだろうか
0687デフォルトの名無しさん
2005/09/23(金) 20:36:590688デフォルトの名無しさん
2005/09/23(金) 20:57:22それ自体が標準になるってことにはもともとなってない
C++0x(っていうかその前のTR1か?)ではスマートポインタとかが
かなりそっくり取り込まれてるよな
0689デフォルトの名無しさん
2005/09/23(金) 21:00:180690デフォルトの名無しさん
2005/09/23(金) 21:23:21たぶんその時代はこないだろうけど。
・
・
・
・
・
・
C#がメインストリートを歩んでいくから。
0691デフォルトの名無しさん
2005/09/23(金) 21:37:43発表から5年くらい立ってるよね
0692デフォルトの名無しさん
2005/09/23(金) 21:51:560693デフォルトの名無しさん
2005/09/23(金) 22:25:570694ヽ(´ー`)ノ ◆.ogCuANUcE
2005/09/23(金) 22:29:50それよか boost::container_adaptor と boost::container_facade が欲しい。
0695デフォルトの名無しさん
2005/09/24(土) 15:35:57#ifndefなどでboostがある場合と無い場合を書きたいのですが、boostで定義される特有の
ものはないでしょうか?
0696デフォルトの名無しさん
2005/09/24(土) 15:50:04仮にそういうマクロがあったとしても、そのヘッダの前にincludeされていないと
感知できないわけだが、それでもいいのか?
いいなら、BOOST_CONFIG_HPPをテストするのはどうだろう。
0697デフォルトの名無しさん
2005/09/24(土) 16:08:03メッセージの最大許可長の倍のバッファを用意して
実際のリードバッファはそのバッファの中を移動させながら使っています。
\0から逆方向にもパースできる書式なので、死んだメッセージ以外の読みもらしもありません。
ただTCPを使ってる以上は不正の段階で切断でもいいかも知れませんね・・・
0698デフォルトの名無しさん
2005/09/24(土) 16:11:240699デフォルトの名無しさん
2005/09/27(火) 06:10:45詳しく
0700ハーピィ
2005/10/05(水) 01:31:190701デフォルトの名無しさん
2005/10/15(土) 20:31:170702デフォルトの名無しさん
2005/10/16(日) 02:36:040703デフォルトの名無しさん
2005/10/16(日) 06:13:43「いいよ。」だってさ。二週間言いたくて見張ってたんだろうな
0704デフォルトの名無しさん
2005/10/16(日) 08:17:24自信の狭隘な視野でしかものを見られないと恥を掻く典型だね。
0705デフォルトの名無しさん
2005/10/16(日) 08:49:05博学だねー。
0706デフォルトの名無しさん
2005/10/16(日) 08:58:430707デフォルトの名無しさん
2005/10/16(日) 10:10:120708デフォルトの名無しさん
2005/10/16(日) 10:21:56C++ 0xに。
もちろんboostの全てが組み込まれるわけではない。
0709デフォルトの名無しさん
2005/10/16(日) 11:39:09find_if( v.begin(), v.end(), { return _x == 3; } );
MicrosoftにはLippmanとかSutter強者がいるから、
C++ 0xが分けわからん状態にならんように頑張って欲しい。> JTC1/SC22/WG21
0710デフォルトの名無しさん
2005/10/16(日) 17:29:45ttp://article.gmane.org/gmane.comp.lib.boost.devel/132958
Boost.TR1 受理。TR1 は ISO の最終投票にも満場一致で通過。
次は TR2。いくつかのライブラリに対する評価はこんな感じらしい。
ttp://article.gmane.org/gmane.comp.lib.boost.user/13925
Range & String-algo 欲すぃ...
0711デフォルトの名無しさん
2005/10/16(日) 17:59:100712デフォルトの名無しさん
2005/10/16(日) 19:47:28Functionality supported includes:
・ Reference Wrappers
・ Smart Pointers
・ Class template result_of.
・ Function template mem_fn.
・ Function Object Binders.
・ Polymorphic function wrappers.
・ Type Traits.
・ Random Number Generators and Distributions.
・ Tuples.
・ Tuple Interface to std::pair.
・ Fixed Size Array.
・ Hash Function Objects.
・ Regular Expressions.
・ Complex Number Algorithm Overloads.
・ Complex Number Additional Algorithms.
Functionality in TR1 but not yet available:
・ Mathematical Special Functions.
・ Unordered Associative Set (Hash Table).
・ Unordered Associative Map (Hash Table)
・ C99 C language additions.
0713デフォルトの名無しさん
2005/10/16(日) 20:22:53しかし、N1885,!886 がすごく気になる…
0714デフォルトの名無しさん
2005/10/16(日) 20:29:330715デフォルトの名無しさん
2005/10/16(日) 21:10:52http://lists.boost.org/Archives/boost/2005/09/93002.php
ってことらしけど、Reisのページ、
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/research/
にも最近の動向は書いてないなあ。
conceptのdraftはN1849なんだろうから、concept廻りの型理論/推論関係?
0716デフォルトの名無しさん
2005/10/16(日) 23:42:21そもそも lambda の言語ネイティブでのサポートというのは,
C++ の基本的な設計理念と非常に相性が悪いように思うんですけれど,どうなんですかね?
>>715
私の理解が正しければ,今現在の concept に関する提案では
Stroustrup & Dos Reis のもの (N1510, N1522, N1536, N1782) と
Gregor, Siek らのもの (N1758, N1849) の2つが競合している状態だったはずです.
各々の proposal をちゃんと読んでないので,各々の長短所が何なのかとかは
いまいち理解してないですけれど.流し読みした限りではあまり違わないような?
0717デフォルトの名無しさん
2005/10/17(月) 19:34:49無名文字列リテラルとか昔からあるわけだし、
もっと早くから無名関数が有っても良かったような・・・
0718デフォルトの名無しさん
2005/10/17(月) 23:13:32x => x * x
C++/CLIはこんなんになるみたいだが。
0719デフォルトの名無しさん
2005/10/17(月) 23:58:390720デフォルトの名無しさん
2005/10/18(火) 00:24:37decltype、キーワードはtypeofにして欲しいのう…
0721デフォルトの名無しさん
2005/10/18(火) 11:59:34高階関数はともかく単なる無名関数なら
単に記述性の問題だけのような気がする。
アセンブラ定数や文字列はラベルを付けずに式中に簡単に
記述できたのに、関数だけが態々別途定義して参照する必要
があったのは、その辺りだけアセンブラみたいなスタイルで
実際不便だったし。
0722デフォルトの名無しさん
2005/10/18(火) 12:28:55ETなら問題ないけど。
0723デフォルトの名無しさん
2005/10/18(火) 14:44:47いまのC++と関数型言語の違いは主に記述性にあると思うんだが。
0724デフォルトの名無しさん
2005/10/18(火) 21:48:210725デフォルトの名無しさん
2005/10/18(火) 22:02:47標準化に耐えうるだけの,C++ コミュニティ全体のコンセンサスが得られる
ラムダ式の仕様拡張の妥協点を見出すのは非常に難しいと感じるのですが
どうなんでしょうか?
個人的には,言語ネイティブでのサポートよりも,どちらかといえば
(Boost.Lambda 以上の豊かな表現力を持った)ライブラリレベルでの解法が出現する
可能性の方がまだ見込みがあるのではないかとさえ考えるのですが…….
>>720
今のところ decltype と typeof で微妙に機能が違うように提案してたと思います.
>>722
ET だと問題ないのはどうしてですか?
0726デフォルトの名無しさん
2005/10/18(火) 22:23:24> ET だと問題ないのはどうしてですか?
Expressionそのものはfirst classのobjectじゃないですよね。
生成された構造木はfirst classのobjectですが。
構造木の生成はプログラマが制御できます。というしなければなりません。
# bindingはこの生成時に解決されます。
だからクロージャ問題がありません。λ式と違って。
ETはコンビネータによるλ式の実装に似ていますよね。
0727デフォルトの名無しさん
2005/10/19(水) 01:14:49例の宇宙人の映画?
0728デフォルトの名無しさん
2005/10/19(水) 01:26:150729デフォルトの名無しさん
2005/10/20(木) 00:17:07↑この馬鹿は何を言ってるんですか?
0730デフォルトの名無しさん
2005/10/20(木) 00:44:470731デフォルトの名無しさん
2005/10/21(金) 15:10:02class Klass:public grammer<Klass>{
public:
void hoge(const char* first,const char* last);
template<typename S> struct definition {
rule<S> expr;
definition(const Klass& self) {
expr = *(alpha_p | '_')[bind(&Klass::hoge,self, _1,_2)];
};
};
}
0732デフォルトの名無しさん
2005/10/21(金) 15:17:46>>731のコードだと
error C2440: '引数' : 'const Klass *' から 'Klass *const ' に変換できません。
と言われます。何か自分が勘違いしてますでしょうか?
環境はVC7.1+STLPort4.6.2+boost1.33.0です。
0733デフォルトの名無しさん
2005/10/21(金) 15:50:46selfはconst Klass&だから非constなhogeを呼べない。
0734デフォルトの名無しさん
2005/10/22(土) 00:04:470735デフォルトの名無しさん
2005/10/30(日) 00:17:44Boost C++ Library プログラミングって本は
ttp://boost.cppll.jp/HEAD/libs/spirit/
のリファレンスを読んだ上で購入する価値ありますか?
TREE_TO_XMLとか構文解析木辺りを知りたいのです。
0736デフォルトの名無しさん
2005/10/30(日) 00:27:39>TREE_TO_XMLとか構文解析木辺りを知りたいのです。
それだとあまりオススメできないかな
0737デフォルトの名無しさん
2005/10/30(日) 00:49:480738デフォルトの名無しさん
2005/10/30(日) 08:40:080739デフォルトの名無しさん
2005/10/30(日) 09:18:27�dクスです
0740デフォルトの名無しさん
2005/10/31(月) 02:10:36ttp://www.kmonos.net/pub/BoostBook/
0741デフォルトの名無しさん
2005/10/31(月) 09:12:14TREE_TO_XML辺りの記述もありますね。
ISO8859-1固定か・・・。
0742デフォルトの名無しさん
2005/10/31(月) 19:00:47の場合でもiteratorパターンを使いたいのですが、
通常のscope外でも動作し続ける
for文ぽいものってあるのでしょうか?
boost statechartで可能?
0743デフォルトの名無しさん
2005/10/31(月) 23:50:01serializationで抽象クラスのポインタシリアライズがうまくいきません。
ポインタシリアライズの場合constってどうすれば・・・
どこかにサンプルコードとかありませんかね?
0744デフォルトの名無しさん
2005/11/01(火) 00:05:400745デフォルトの名無しさん
2005/11/04(金) 00:49:580746デフォルトの名無しさん
2005/11/04(金) 01:08:090747デフォルトの名無しさん
2005/11/05(土) 08:16:450748デフォルトの名無しさん
2005/11/05(土) 08:22:15基本的なメタプログラミングの道具(typelistとか)はカバーしてるけど、
デザインパターンの具体化のようなものは無い。
0749デフォルトの名無しさん
2005/11/05(土) 08:33:42んなこたーない
0750デフォルトの名無しさん
2005/11/06(日) 01:35:45MFCでも使えるんだろうか...
0751デフォルトの名無しさん
2005/11/06(日) 23:49:51/boost/ptr_container/ptr_map_adapter.hppの171行目の
value_type res = new T(); // strong
が原因みたいだけど
shared_ptrを使うしかないのかな
0752デフォルトの名無しさん
2005/11/07(月) 00:53:560753デフォルトの名無しさん
2005/11/07(月) 01:24:48前回のアップデートが2003だから、次は2008?
0754デフォルトの名無しさん
2005/11/08(火) 19:30:190755デフォルトの名無しさん
2005/11/11(金) 10:35:03read_write_mutexが削除されてる.・゚・(ノД`)・゚・。
0756デフォルトの名無しさん
2005/11/11(金) 11:13:550757デフォルトの名無しさん
2005/11/15(火) 02:45:00前の問題は荒技でなんとかなったのですが…。
抽象構文木の解析でposition_iteratorを使ってエラー行を出力させてるのですが、
解析そのものが失敗したときはast_parseの返却値のstopを取得すればエラー行が分かるようですが、
評価のときにnode_val_dataのイテレータがposition_iteratorではなくてconst wchar_t*とまんまなので困っています。
ソースを見たらstd::iterator_traits<IteratorT>::value_typeで中身が暴かれてしまっているのが原因かなと。
おそらくコピーを保持しているからだと思うのですが…。
構文木の評価にもposition_iteratorを利用しようとしていることそのものがだめなのかもしれません。
0758デフォルトの名無しさん
2005/11/20(日) 19:15:55横着して #include <boost/test/auto_unit_test.hpp> を読み込んでから
BOOST_AUTO_TEST_CASE ( ... )
でテストケースをどかどか追加しているのですが、この方法でテストケースの実行順序を
明示的に制御することはできますか?より下位の機能を試験するテストケースを先に
実行するように並べたいのです。テストケースは複数ファイルに散在しています。
0759デフォルトの名無しさん
2005/11/20(日) 21:37:44vertex_descriptorから元のintegerを調べる逆写像みたいなのって用意されてないの?
0760デフォルトの名無しさん
2005/11/23(水) 07:32:41try{
fs::path dir("c:/usr");
}catch(exception &e){ cerr << e.what() << endl;}
としたら、実行時に、
boost::filesystem::path: invalid name "c:" in path: "c:/usr"
という例外出てしまうんですが、何がまずいんでしょうか?
cygwin g++ で、boostライブラリは配布サイトから持ってきたものです(cygwin同梱ではない)。
0761デフォルトの名無しさん
2005/11/23(水) 09:27:13#そもそもCygwinにはドライブの概念がないのだよね。
0762デフォルトの名無しさん
2005/11/23(水) 09:32:08/cygdrive/C/usr
にしないとね
0763デフォルトの名無しさん
2005/11/23(水) 09:37:54やっぱダメみたいです。
boost::filesystem::directory_iterator constructor: "\cygdrive\c\usr": 指定されたパスが見つかりません。
Cygwinのパスシステムがネックになってるみたい。
0764デフォルトの名無しさん
2005/11/23(水) 09:44:050765デフォルトの名無しさん
2005/11/23(水) 09:52:27path::normalize() とかやってみたけど、やっぱだめ。
とりあえず、filesystemのソース読み中・・・。
0766デフォルトの名無しさん
2005/11/23(水) 10:04:59VC++だけどこうしたらできた。もちろん'/'だけでなく'\\'でも問題なし。
0767760
2005/11/23(水) 10:35:46↑ ここに Note for Cygwin users が書いてありました。
コンパイル時に、BOOST_POSIXマクロ指定しなきゃならんと書いてある・・・のかな?
0768デフォルトの名無しさん
2005/11/23(水) 10:38:03ライブラリのコンパイル時にBOOST_POSIXマクロを指定しろと書いてあるね。
ユーザプログラム側で指定する必要はない、と
0769デフォルトの名無しさん
2005/11/23(水) 18:25:21以下が 757 さんがやりたいことかどうか分からないですけれど,
typedef position_iterator<wchar_t const *> Iterator;
typedef node_iter_data_factory<Iterator> NodeFactory;
typedef tree_parse_info<Iterator, NodeFactory> ParseInfo;
Iterator first = /* 入力の開始位置 */;
Iterator last = /* 入力の終了位置 */;
ParseInfo info = ast_parse(first, last, your_rule, NodeFactory());
こうすれば tree_node の value.begin() と value.end() が,
そのノードに対応する入力シーケンスの範囲を指してくれます.
ただ,node_iter_data_factory を使う場合構文木を操作する間
入力シーケンスを維持しないといけないという制限が出てきます.
0770デフォルトの名無しさん
2005/11/23(水) 18:27:13翻訳単位が分かれているなら諦めるしかないと思います.
恐らくグローバルオブジェクトの初期化順序と同等の問題になるでしょうし.
>>759
adjacency_list を使っているのだと思いますけれど,
VertexList のコンテナとして vector (vecS) を指定しているなら
vertex_descriptor がそのまま頂点の番号として使えます.
Vertex u = vertex(0, g);
std::cout << u << std::endl;
より汎用な形で書きたいなら
std::cout << get(vertex_index_t(), g, u) << std::endl;
という書き方があります.こちらの書き方のほうが好ましいです.
VertexList のコンテナとして vector 以外を指定している (例えば listS) なら
以下のような形でユーザ側で頂点のプロパティを管理しなければならないです.
typedef property<vertex_index_t, std::size_t> VertexProperty;
typedef adjacency_list<listS, listS, directedS, VertexProperty> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
Graph g;
Vertex u = add_vertex(g);
put(vertex_index_t(), g, u, 0);
Vertex v = add_vertex(g);
put(vertex_index_t(), g, v, 1);
Vertex x = vertex(1, g);
std::cout << get(vertex_index_t(), g, x) << std::endl;
0771759
2005/11/23(水) 20:27:59どうもです。BGL使ってる人は居ないんだと思ってスルー覚悟してました。
adjacency_listを使ってますが・・・難しいですね。C++。
本家のドキュメント読み漁って所望の動作は実現できるようになりましたが
これがベストな解なのかまったく自信がないです。精進したいので参考になる
サイトとか書籍とか(一冊だけ出てるみたいですけど)教えていただけると幸いです。
0772デフォルトの名無しさん
2005/11/23(水) 20:55:15英語版があるらしいので、君が翻訳してくれると助かる。
0773デフォルトの名無しさん
2005/11/24(木) 23:20:090774デフォルトの名無しさん
2005/11/24(木) 23:34:28詳しく
0775デフォルトの名無しさん
2005/11/25(金) 00:06:25(理解力が足りなくて)boost使えねえ…
0776デフォルトの名無しさん
2005/11/25(金) 00:07:360777デフォルトの名無しさん
2005/11/25(金) 01:10:43VC6でも使っているの?
0778ヽ(´ー`)ノ ◆.ogCuANUcE
2005/11/25(金) 08:28:000779デフォルトの名無しさん
2005/11/25(金) 08:36:430780デフォルトの名無しさん
2005/11/25(金) 09:15:21新しいライブラリを導入して現場を混乱させたくないってのが主なのかな
0781デフォルトの名無しさん
2005/11/25(金) 09:40:33現場のレベルも考えずに、自称”できるPG”のバカがトリッキーな技を仕込む。
0782デフォルトの名無しさん
2005/11/25(金) 12:05:430783デフォルトの名無しさん
2005/11/25(金) 12:57:31お前はライブラリに対して何かそれ以外のことをしてるのか?
毎朝心を込めて朗読でもしてるとか。
0784デフォルトの名無しさん
2005/11/25(金) 12:59:28> 永遠のベータ版みたいなライブラリ
って言われてもね。
0785デフォルトの名無しさん
2005/11/25(金) 15:27:19VC++7の時のやり方で普通にやると「オプションが廃止された」とか出る。
その後ネットで調べ、エラーが出なくなったので組み込んでみると、VC++2005Expressの方で「コンパイラオプションが違う」とか出るorz
1.33.1betaをVC++2005Expressでちゃんとビルドできた人、アドバイスお願いします。
0786デフォルトの名無しさん
2005/11/25(金) 15:58:40ビルドできたけど、1.33.1 はやってないからわからん。
0787デフォルトの名無しさん
2005/11/25(金) 23:18:02これって、どうやってマクロを定義するの?
bjam 使って、コンパイルスイッチマクロのON/OFFする方法が分からない。
どっか、詳しい情報無いですか? できれば日本語で・・・
0788759
2005/11/25(金) 23:18:54ユーザ側で頂点のプロパティを管理する場合、インデックスは0から連番で登録して
いかないと意味をなしませんか?
他のところで管理しているデータとの対応を取るためにそちらのIDを入れてみると
IDを手掛かりに頂点を引っ張って来ようとしたときに登録した番号に対応する頂点が
見付からなかったり、まだ登録してない番号の頂点が見付かったりします。
ビジタとか使ってグラフ操作で楽できればいいなぁと思ったのですが、楽するどころか
やりたい処理内容まで到達できずにくじけそうです。何といってもコンパイルエラーから
原因を突き止めるのが大変だし・・・疲れたな orz
0789デフォルトの名無しさん
2005/11/26(土) 09:40:221.33.0だとOKでしたか。
1.33.1でも試してみたいので、その際にいじったやり方を教えてもらえないでしょうか?
0790デフォルトの名無しさん
2005/11/26(土) 19:32:200791デフォルトの名無しさん
2005/11/26(土) 20:11:100792デフォルトの名無しさん
2005/11/26(土) 20:25:470793デフォルトの名無しさん
2005/11/26(土) 23:06:480794デフォルトの名無しさん
2005/11/26(土) 23:16:50それがboostクオリテ
0795デフォルトの名無しさん
2005/11/26(土) 23:18:09お前がboost嫌いなのはよく分かったから落ち着け、な?
0796790
2005/11/27(日) 00:54:15それでイテレーター付いていて、くいくいと順に値を取り出せるような奴あります?
0797デフォルトの名無しさん
2005/11/27(日) 00:56:57boost::variantとboost::anyは共用体のように排他的であり、
複数の型のデータを同時に保持しているということはありえない。
0798デフォルトの名無しさん
2005/11/27(日) 01:05:45#include <string>
#include <vector>
#include <iterator>
#include <boost/variant.hpp>
#include <boost/any.hpp>
using namespace std;
typedef boost::variant<int, double, string> item_type;
void print_type(item_type &item){
cout << "[ type id = " << item.which() << " ] " << item << endl;
}
int main()
{
vector<item_type> v;
v.push_back(123);
v.push_back(3.141592);
v.push_back("あいうえお");
for_each(v.begin(), v.end(), print_type);
return 0;
}
0799798
2005/11/27(日) 01:07:29これが一番、やりやすそうだな。と、コメント入れ忘れた
あと、any のインクルード消すの忘れてた。
0800デフォルトの名無しさん
2005/11/27(日) 01:12:46自分の頭の出来が原因で嫌いな場合、落ち着くことはとても難しいと思います :-)
0801・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/11/27(日) 01:36:23ほほう。面白いな(・∀・)
WTLでリストビューをオーナーデータにして使ってるんだけど、
整数型・浮動小数型・文字列型・日付型なんかに合わせてソートを実装したいと思ってるけど。
うまい実装法が見つかりそうな気がした。
具体的に言えばSQLとかで取ってきたデータを整理するのに使いたい。
気付いたら俺のプログラムでBoostで使ってるライブラリはMersenneTwisterくらいでした。
SandBoxにGUI扱うためのクラス群が上がってるけど、実用に至るのはいつ頃だろうな。
Cocoaなんかもある。純粋なC++で使えるんかいな。
0802デフォルトの名無しさん
2005/11/27(日) 06:12:57初回オンリーの真面目ソート時にあらかじめ重み付けされた値を付与させておいて、
以後はその値でソートする。ま、常識か。
0803・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/11/27(日) 17:27:18俺の場合は、単純に先頭をsizeof (int) 個分だけ取り出して
(str[0] << 24) | (str[1] << 16) | (str[2] << 8) | str[3]
とかやっておけば大概の場合はよくね?とか思っている。
まあBigEndianならこの演算自体不要だね。普通に読み出せば文字列の先頭バイトが上位にくる。
でもBigEndianなプロセッサって大概、アラインメントの制約厳しい気もす。
まあ、文字列本体とは別に4バイトや8バイトデータサイズが増えたってさして気にするこたないけど。
0804デフォルトの名無しさん
2005/11/27(日) 19:07:520806デフォルトの名無しさん
2005/11/28(月) 04:49:440807デフォルトの名無しさん
2005/11/28(月) 07:44:42VC6を使うな。
0808デフォルトの名無しさん
2005/11/28(月) 07:50:170809デフォルトの名無しさん
2005/11/28(月) 11:49:42INCLUDE と LIB にそれぞれ
Platform SDK の include と lib のパスを追加しました。
試してみたら 1.33.1 もビルドできましたよ。
0811デフォルトの名無しさん
2005/11/28(月) 22:49:47無理。
signals→ttp://engineering.meta-comm.com/boost-regression/1_33_0/user/
0812デフォルトの名無しさん
2005/11/30(水) 02:23:18ttp://pc8.2ch.net/test/read.cgi/tech/1131590396/121
これも忘れずにね
Boost1.31.0の場合だと、パス通しただけで普通に使えた。コンパイル時の警告は出るけど。
BCCで1.33がリンカエラーになったからUPしてなかったけど、そろそろ上げるかな・・・。
0813デフォルトの名無しさん
2005/11/30(水) 16:48:32印刷して電車で読んでいるんだけど、
HTML版は大きいのはページが分かれていて印刷するのが面倒だから。
DocbookからPDFにするいいツールを持ってないし。
0814・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/11/30(水) 22:59:00紙で読むなら例のBOOST本のほうがいいんでね?
0815デフォルトの名無しさん
2005/11/30(水) 23:18:380816デフォルトの名無しさん
2005/12/01(木) 00:10:340817デフォルトの名無しさん
2005/12/01(木) 00:16:34これどうしたらいいのか教えて偉い人。
コンパイルのエラーを眺めてみると反転前グラフのプロパティを反転後グラフの
プロパティに変更しようとして失敗してるっぽい。カスタムエッジプロパティとか
カスタムバーテックスプロパティとかてんこもり突っ込んでるからだめなんだろか。
そもそもエッジの向きを反転させただけで別クラスのオブジェクトに変更しないで
欲しいんだが・・・BOOST難しくてどう逃げたらいいのかわかんね。
0818デフォルトの名無しさん
2005/12/01(木) 00:40:18似てるってかモロ同じ内容の問い合わせ見付けたけど3年間放置されたままか o...rz
0819デフォルトの名無しさん
2005/12/12(月) 17:14:06latexのsourceをちょっと修正しましたが。
http://dblatex.sourceforge.net/
0820デフォルトの名無しさん
2005/12/16(金) 11:01:37http://www.s34.co.jp/cpptechdoc/article/regexpp/
ここ、とおらね。
新バージョンのRegex解説、日本語版サイトってありますか?
0821デフォルトの名無しさん
2005/12/16(金) 11:37:13ぬるぽ
0822デフォルトの名無しさん
2005/12/16(金) 11:39:46┌――─┴┴─――┐
│ セルフサービス .│
└―――┬┬─――┘
││ ./
゛゛'゛'゛ /
/
| \/
\ \
\ノ
0823デフォルトの名無しさん
2005/12/16(金) 15:22:02Config Headerいじってbjamした?
0824デフォルトの名無しさん
2005/12/17(土) 20:20:571.33に戻したら動くみたいだけど。
0825デフォルトの名無しさん
2005/12/20(火) 16:31:51adjacency_listで同じプロパティをもつ頂点を追加しないようにする方法ありませんか。
辺の重複はチェックできますが、頂点の重複チェックは思うようになりません。
プロパティを別変数に持つのはエレガントではないので。
0826デフォルトの名無しさん
2005/12/30(金) 17:12:52やたらと警告が出るのは仕様?
0827デフォルトの名無しさん
2005/12/30(金) 17:19:520828デフォルトの名無しさん
2005/12/30(金) 19:23:450829デフォルトの名無しさん
2005/12/30(金) 19:34:42コンパイラスイッチで定義するなりすれば回避できます.
C4819 の方はどうも日本語版でのコンパイルでのみ現れる警告のようで,
lexical_cast.hpp や is_base_and_derived.hpp 等のファイルに書かれている
著作者名の文字コードに起因する警告かと思います.
どちらの警告も Boost のコードに対するものなら放置しても
問題はないと思います. C4819 の方は,うっとうしいなら
コンパイラスイッチ (/wd) やプラグマ (#pragma warning) で消すなり,
警告にあるように該当するファイルの文字コードを変換するなり,
あるいは根治治療するなら boost-dev あたりにレポートしないと.(恐らく未報告)
0830デフォルトの名無しさん
2005/12/30(金) 19:55:22表示できない文字は含んでねえっつーの。
0831デフォルトの名無しさん
2005/12/30(金) 20:06:00せっかく beta でバグリポート上がってたのに結局対処されなかったのか…….
0832デフォルトの名無しさん
2005/12/31(土) 08:25:31他の言語版でも現れる可能性もあるわけだから、
やっぱそういう文字は取り除いておいた方がよくね?
って思ったが、そんな内容のメール投げたら
「極東の猿は黙れ」って言われそうだからやめとく(笑
0833デフォルトの名無しさん
2005/12/31(土) 08:47:31漏れも試してみたいんだが、VS2005は、どこでダウンロードできたんだっけ?
0834デフォルトの名無しさん
2005/12/31(土) 09:57:56http://www.microsoft.com/japan/msdn/vstudio/express/
漏れは theSpoke Premium のおまけで VS2005 Professional
をもらえたからそれを使ってます。
確かにさっきコンパイルしてみたらいっぱい警告出ますね。
ついでに cygwin でも使ってみるべ、と思ったら、
すでに cygwin の公式パッケージにありました。便利。
しかし、早く正式な標準になったらいいのにね。
各コンパイラインスコしたらすぐに使えるようだとうれしい。
0835デフォルトの名無しさん
2005/12/31(土) 13:44:15reg_expression<char> regex = "<img +src=('|\").*('|\") *>";
みたいな使い方をしてるサンプルが結構あるんですが、
正しくは reg_expression<T1,T2>なんですよね?
バージョンによって結構差異があるんでしょうか?
0836デフォルトの名無しさん
2005/12/31(土) 17:18:07Boost.Regex
Class reg_expression (deprecated)
-
The use of class template reg_expression is deprecated: use basic_regex instead.
0837デフォルトの名無しさん
2005/12/31(土) 17:30:52とりあえずヘッダファイル見たら boost::regex と boost::wregex
を使えといわんばかりに typedef されていたので、
boost:regex と boost:wregex を使うことにしました。
0838デフォルトの名無しさん
2005/12/31(土) 22:58:140839デフォルトの名無しさん
2006/01/02(月) 05:26:200840・∀・)っ-●○◎- ◆Pu/ODYSSEY
2006/01/02(月) 08:20:28アレは古いっしょ。
俺的にはマルチバイト対応してるonigurumaを推奨。てか1.33でRegex++重たくなって萎えた。
0841デフォルトの名無しさん
2006/01/02(月) 22:23:59とか言うのに失敗してインストールできない。
どうすればいいんでしょか…
ググり続けること半日。
全然解決法がみつかりません。
Win XP SP2
VS.net 2003
だれかヒントくださいお願いします。
0842デフォルトの名無しさん
2006/01/03(火) 00:40:10自己解決!
参考までに、
vcvars32.batが環境変数をSETするのに何故か失敗していた模様。
手動で必要な環境変数を設定すると成功。
あーつかれた…
0843デフォルトの名無しさん
2006/01/12(木) 06:21:57Visual Studio 2005 でビルドするとメモリリーク発生?
0844デフォルトの名無しさん
2006/01/12(木) 06:39:02STLportのnode allocatorが原因
boostとは無関係
0845デフォルトの名無しさん
2006/01/12(木) 12:41:241.32.0で通るコードが1.33.0で全然ダメでしたorz
どうもublas的には1.32.0の方が堅牢っぽいです
ublasの情報少ないし、誰かのためになれば・・・と、一応ご報告
0846デフォルトの名無しさん
2006/01/12(木) 22:55:17通らなかったコードが欲しいな。
その方がもっとためになる。
0847デフォルトの名無しさん
2006/01/12(木) 22:57:500848845
2006/01/13(金) 00:59:34あまり詳しく原因究明していないから確かなことは言えないんだけど、
LU分解を使って処理しているところが怪しい感じ・・・
lu_factorize とか lu_substitute とかたぶんその辺?
逆行列計算するところでハマリました
0849デフォルトの名無しさん
2006/01/14(土) 12:06:26BOOST_STRONG_TYPEDEF(unsigned, A);
BOOST_STRONG_TYPEDEF(unsigned, B);
A a(1);
B b(2);
unsigned u(3);
a=b;
u=a;
a=u;
どれも該当する = 演算子および変換があるから素直にとおる。
なのでもう少し厳しくしてみたら、
stl:vector<A> に対して stl:fill() とかが使えなかった。
そりゃそうか。
しかし BOOST_STRONG_TYPEDEF(unsigned, A) ってことは
unsigned が A の基底クラスみたいなあつかいするってことでそ?
実際には構造体 A の要素として unsigned を抱えてるけど。
a が unsigned に代入できるのはいいとして、
a = b とかはコンパイル時にはじきたい。
0850BOOST_STRONG_TYPEDEF
2006/01/14(土) 12:14:58explicit D(const T t_);
D(){};
D(const D & t_);
D & operator=(const D & rhs);
D & operator=(const T & rhs);
operator const T & () const;
operator T & ();
operator==(const D & rhs);
bool operator<(const D & rhs) const;
が定義されるんだけど(実は基底クラスでさらにいくつかの演算子も)、
D & operator=(const T & rhs); がなぁ。
上の例での a = b は、
a 側の A & operator=(const unsigned &) と
b 側の operator const unsigned & () const が
のケコーンで通るわけだけど、不用意に通したくないんだよな。
0851BOOST_STRONG_TYPEDEF
2006/01/14(土) 12:17:04BOOST_STRONG_TYPEDEF(double, Length);
Weight w(10.5);
Length l1(30.0);
Length l2(31.0);
で、 不用意に w = l1 ってやってしまうのを防ぎたいんだよな。
l1 = l2 はもちろんおk
0852BOOST_STRONG_TYPEDEF
2006/01/14(土) 12:18:020853デフォルトの名無しさん
2006/01/14(土) 12:20:060854BOOST_STRONG_TYPEDEF
2006/01/14(土) 12:24:59それともグローバルで friend の?
0855デフォルトの名無しさん
2006/01/14(土) 12:52:12http://www.boost.org/libs/mpl/doc/tutorial/dimensional-analysis.html
0856BOOST_STRONG_TYPEDEF
2006/01/14(土) 14:53:12とはいえ、いまちらっと見た限りでは
結構オーバーヘッドありそうな実装だなぁ。
利便性(安全性)をとるか、スピードを取るか、悩ましい。
とりあえずサンプルつくってスピード測定してみます。
最終的に物理計算なんかの大型計算機で使うライブラリで、
ミスを防ぐようにするために使おうと思っているんですが、
スピードがあまりにも犠牲になるようなら問題だし。
0857デフォルトの名無しさん
2006/01/14(土) 15:45:23>結構オーバーヘッドありそうな実装だなぁ。
どこが?
キャストしてるだけに見えるが。
0858デフォルトの名無しさん
2006/01/15(日) 02:48:400859デフォルトの名無しさん
2006/01/15(日) 03:03:440860デフォルトの名無しさん
2006/01/15(日) 07:40:360861デフォルトの名無しさん
2006/01/15(日) 12:09:13VC8はβ・英語版・日本語版全部問題なくboost使えてるけどなぁ。
0862デフォルトの名無しさん
2006/01/15(日) 18:06:410863デフォルトの名無しさん
2006/01/15(日) 19:18:06std::cout << mat;
とすると
最初に行列サイズが表示されるので
saveした結果を別なもの(matlabとか)から呼びだせない。
最初に行列サイズが表示されないようにするオプションとかない?
0864デフォルトの名無しさん
2006/01/15(日) 23:09:34boost/numeric/ublas/io.hppを見れば分かるけど、
s << '[' << size1 << ',' << size2 << "](";
とベタ書きされてるから無理。
行列の表示程度なら1から書いてもそんなに労力はかからないんじゃない?
0865デフォルトの名無しさん
2006/01/16(月) 10:25:59やっぱりだめですか
素直に自分で書きます。
0866デフォルトの名無しさん
2006/01/16(月) 10:37:52じゃ駄目なんか?
0867デフォルトの名無しさん
2006/01/17(火) 00:38:08template<class T, class Policies> template<class T1, class T2> inline
interval<T, Policies>::interval(T1 const &l, T2 const &u)
{
if (checking::is_nan(l) || checking::is_nan(u) || !(l <= u)) set_empty();
else {
rounding rnd;
low = rnd.conv_down(l);
up = rnd.conv_up (u);
}
}
のような関数がたくさん出てきます。template が
二重に使ってあるのですが、T1 や T2 は
テンプレートをインスタンス化するときに
いったいどこで指定するのでしょうか・・・・
実際に使うときには
boost::numeric::interval<unsigned> unsigned_interval(20,30);
のようにするのですが、T1,T2 はいったいどこへ・・・
そもそも二重のtemplateを使ったことがなく・・
0868デフォルトの名無しさん
2006/01/17(火) 01:07:450869デフォルトの名無しさん
2006/01/17(火) 01:17:12interval(T const &l, T const &u)
も定義されていて、どっちがマッチするのか混乱してまつ。
テンプレート展開後の状態でのソースを吐かせることが出来ればなぁ。
マクロならプリプロセッサの処理の直後で吐かせて確認できるのに。
0870デフォルトの名無しさん
2006/01/17(火) 01:23:45> interval(T const &l, T const &u)
の方が特定的だからこっちが選ばれる。
(2.0, 30)だと>>867の方。
0871デフォルトの名無しさん
2006/01/17(火) 01:40:28クラステンプレートのメンバ関数テンプレートのクラス外での定義って事は解ってる?
0872デフォルトの名無しさん
2006/01/17(火) 09:58:47VC7.1だとうちも簡単なサンプルさえ通らなかったよ。
なぜかVC6は通るんだけど...
0873デフォルトの名無しさん
2006/01/17(火) 12:43:58漏れも自作の3行関数を作ってハッピーになるか
http://lists.boost.org/MailArchives/ublas/2005/09/0775.php
0874872
2006/01/17(火) 13:04:57なんか手順をミスってたのだろうな...orz
0875デフォルトの名無しさん
2006/01/17(火) 13:06:061.33のヘッダにパスが通ったままで、1.33.1のビルドをしたとか。
0876874
2006/01/17(火) 15:24:16vsvars32.bat実行した後に
違う-sTOOLS実行したせいか、
もしくはregexのuser.hpp変更してbjamし忘れてたのかも...
0877デフォルトの名無しさん
2006/01/18(水) 11:20:51のソースに
#include <fstream>
#include <string>
#include <boost/serialization/nvp.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/archive/xml_iarchive.hpp>
#define BOOST_LIB_NAME boost_serialization
#include <boost/config/auto_link.hpp>
を付け足してVC7.1でコンパイルすると以下のようなエラーが出ます。
boost\archive\detail\oserializer.hpp(131) : error C2027: 認識できない型
'boost::serialization::extended_type_info_null<T>' が使われています。
何が悪いのでしょうか?
0878デフォルトの名無しさん
2006/01/18(水) 18:24:37boost_date_time-vc6-mt-gd-1_33.libみたいにvc6がついちゃうんだけど何故?
アプリをビルドする際には「boost_date_time-vc80-mt-gd-1_33.libを開くことが出来ません」
となってしまう。
なぜboostをビルドしたときにできるライブラリのファイル名がvc80じゃなくvc6となって
しまうんでしょう??
0879デフォルトの名無しさん
2006/01/18(水) 18:29:36bjamを実行する時
-sTOOLS=vc-8_0
にしてる?
0880876
2006/01/19(木) 05:44:48参考までに
1.PlatformSDKの環境変数を通す
2.VC8の環境変数を通す
3.bjamのディレクトリまで移動
4.bjam "-sTOOLS=vc-8_0" stage
という手順を踏まないと正常にビルドできなかったよ。
0882デフォルトの名無しさん
2006/01/19(木) 15:18:50スタティック版(lib*.lib)とリンクしようとしているようでビルドエラーになります。
vc7.1の時は何も指定しなくとも自動的にdll版のライブラリとリンクされてたんですが。
アプリ(ソリューション)自体は同じものでvs8の変換機能でvs8用に変換しただけです。
BOOST_ALL_DYN_LINKを指定しても同じです。何か他に設定しないといけないんでしょうか?
(boostは1.33.0です)
0883デフォルトの名無しさん
2006/01/19(木) 16:24:15ライブラリによって設定が違うから、boost のどのライブラリを使おうとしているのか教えてください。
0884デフォルトの名無しさん
2006/01/19(木) 16:42:31ありがとうございます
threadとdate_timeとregexです
0885884
2006/01/19(木) 18:14:210886デフォルトの名無しさん
2006/01/20(金) 13:58:54These proposals have been accepted for the upcoming Library Technical Report:
http://std.dkuug.dk/jtc1/sc22/wg21/docs/library_technical_report.html
このあたりを見てると、あるライブラリが boost に採用されて
ゆくゆくは ISO 標準に採用されたときには、名前空間は
boost から std に移されるんだよね?
0887デフォルトの名無しさん
2006/01/20(金) 14:05:450888デフォルトの名無しさん
2006/01/20(金) 14:13:33ネスとしてくれるならそれでいい。
むしろトップレベルの名前空間は一つのほうがいい。
0889デフォルトの名無しさん
2006/01/20(金) 14:47:570890デフォルトの名無しさん
2006/01/20(金) 15:05:43archive 系のヘッダは他の serialization のヘッダより
前に持ってこないといけなかったはずです.
binary_[i|o]archive などだと #error で文句言ってくれるんですが,
恐らく xml_[i|o]archive にはそれが抜けているのかと思います.
0891デフォルトの名無しさん
2006/01/20(金) 17:37:44参考までに教えてくれ
0892デフォルトの名無しさん
2006/01/20(金) 17:41:42http://www.boost.org/doc/html/who_s_using_boost_.html
0893デフォルトの名無しさん
2006/01/20(金) 17:42:490894デフォルトの名無しさん
2006/01/20(金) 17:47:18サンクス
0895877
2006/01/20(金) 21:52:28おっしゃるとおり、archiveのヘッダをserializationのヘッダの
前に持ってくることで無事にコンパイルすることが出来ました。
ありがとうございました。
0896デフォルトの名無しさん
2006/01/22(日) 04:03:49for を含む関数はインライン展開できない
という警告がいっぱいでるのですが、これは仕様ですか?
0897デフォルトの名無しさん
2006/01/22(日) 09:28:400898デフォルトの名無しさん
2006/01/22(日) 13:23:000899デフォルトの名無しさん
2006/01/22(日) 13:55:53「馬鹿なコンパイラだと」
0900デフォルトの名無しさん
2006/01/22(日) 14:19:38Borlandは出来ないということでしょうがないけど、VCの場合は
どういう展開をしているのかが気になるところ。
0901デフォルトの名無しさん
2006/01/22(日) 15:13:06CaseByCase。つーか、スレ違い。
0902・∀・)っ-●○◎- ◆Pu/ODYSSEY
2006/01/22(日) 16:48:13__forceinlineなら緩くなるけど確実じゃない。
0903デフォルトの名無しさん
2006/01/22(日) 18:22:070904デフォルトの名無しさん
2006/01/23(月) 00:08:01警告だらけというのはやめてくれってかんじ
0905・∀・)っ-●○◎- ◆Pu/ODYSSEY
2006/01/23(月) 00:34:020906デフォルトの名無しさん
2006/01/23(月) 12:52:13うざいコテだらけというのはやめてくれってかんじ
0907デフォルトの名無しさん
2006/01/23(月) 17:12:220908デフォルトの名無しさん
2006/01/24(火) 12:14:43細かいところで不便を感じたりしたから、
結局イテレータベースで名前付きキャプチャとマルチバイト対応、
ヘッダファイルのみで完結する basic_regex 作ったこともあった。
検索結果はすべてまとめて関数オブジェクトに渡すつくりだったから
再帰検索や、構文解析するのにけっこう便利だったよ。
これはこれで便利なの?
リスト構造になってる文字列とかお目にかかったことがないんだが。
0911デフォルトの名無しさん
2006/01/24(火) 12:51:55VS2005は付属のSTL使えってことでいいんですか?
0912デフォルトの名無しさん
2006/01/24(火) 13:19:47charTはコンセプトが合っていれば「文字」じゃなくていい。
0913デフォルトの名無しさん
2006/01/24(火) 13:28:490914デフォルトの名無しさん
2006/01/24(火) 13:33:070915デフォルトの名無しさん
2006/01/24(火) 14:06:48双方向イタレータ=リスト構造ってアホですか?
ゴミレスは不要。
0916デフォルトの名無しさん
2006/01/24(火) 14:18:37Shift_JIS は 前方向イテレータ
0917デフォルトの名無しさん
2006/01/24(火) 16:05:42I need Boost NOW!!
I need Boost NOW!!
*ghost Fuckin BackFacker!!!
0918デフォルトの名無しさん
2006/01/24(火) 16:14:180919>∀<)っ-●○◎- ◆Pu/ODYSSEY
2006/01/24(火) 21:31:37regex++にはリスト構造「にも」使える。onigurumaやその他正規表現ライブラリは1次元配列前提。
もしリスト構造かなんかで使えないと何か不便なケースでもあるかなと思って言ったんですが、
それすら通じませんでしたかwww
そりゃ失敬wwwwwwうはwwwwテラワロスwwwww
0920デフォルトの名無しさん
2006/01/24(火) 21:43:480921>∀<)っ-●○◎- ◆Pu/ODYSSEY
2006/01/24(火) 22:47:20Regex++ってsyntax差し替え(SQLやGROBのワイルドカード文字列からオートマトン生成)
って簡単にできたっけ?
鬼車にはサンプルがあったんで解りやすかったが。
まぁ別にワイド文字かASCIIかなら悪くない選択肢だと思うけど、
コード変換って正規表現マッチングそのものなみに遅いじゃん。しかも一部の漢字は死ぬし。
できあいのライブラリでダイレクトに判定したいってことになると、Regex++は日本語環境には
不親切といわざるを得ないかと。
1.33でようやく大文字小文字区別あり/なしの動的切り替えサポートしたと思ったらますます重くなりやがるし。
ASCIIでも単純な構文なら鬼車のほうが数倍高速だったり。
(固定文字列部分を抽出して先にBM法で絞り込むから速いそうな)
0922デフォルトの名無しさん
2006/01/25(水) 11:23:48機能拡張だの豊富なオプションだのはいいんだが
そんなことより照合をばっちりとやってほしいところ。
最低限の機能と正確なマッチングをキボンヌ。
0923デフォルトの名無しさん
2006/01/25(水) 18:48:19中途半端な Boost.Regex は最早不要になるだろうと予想。
0924デフォルトの名無しさん
2006/01/25(水) 18:53:190925デフォルトの名無しさん
2006/01/25(水) 19:23:01今のところデフォルトインストールではXpressiveはインストールされないんだよね?
0926デフォルトの名無しさん
2006/01/25(水) 19:37:26リリースブランチにまだ入っていなかったかと.
入るのは 1.34.0 以降でしょうね.
待ちきれないのなら CVS の HEAD 落とせば入ってます.
0927デフォルトの名無しさん
2006/01/25(水) 20:27:55ってことはないよね、基本的に一旦受理されたものは
ずっとメンテナンスされるってスタンスだし。
それにしても正規表現関係では、日本語、というか
非西洋の文字群の扱いに常に不安がつきまとうね。
http://article.gmane.org/gmane.comp.lib.boost.devel/132010
0928デフォルトの名無しさん
2006/01/25(水) 20:38:390929デフォルトの名無しさん
2006/01/25(水) 20:55:29によっては std:: のはずの locale すら
まともに実装されていないしな。
0930>∀<)っ-●○◎- ◆Pu/ODYSSEY
2006/01/26(木) 22:07:20xpressive書いた人ってMSの研究員でGRETAっていう正規表現ライブラリ書いてたよね。
なぜか(hoge)より(?:hoge)のほうが遅い、不思議なエンジンですた。純粋NFAベースらしいけど。
0931デフォルトの名無しさん
2006/01/26(木) 23:27:48std::vector<std::vector<T> > hoge
とかマジでセンス無いとか思うし。
0932デフォルトの名無しさん
2006/01/26(木) 23:45:51boost::multi_arrayでは駄目なん?
0933デフォルトの名無しさん
2006/01/27(金) 00:06:07探すセンスがない人
0934デフォルトの名無しさん
2006/01/27(金) 00:06:42あのインターフェース、ありえんと思うのは自分だけかな・・・。
使ったら使ったで、他の仲間に怒られそうだ。
色々な意味で非常に不満。よく使用するが故にシンプル設計が良いんだけどな。
0935デフォルトの名無しさん
2006/01/27(金) 01:27:13ただただ正確に漢字を照合して欲しいだけ。
毛深い機能の塊はイラン
0936デフォルトの名無しさん
2006/01/27(金) 03:16:44ぶっちゃけ自分で作った方がいいんじゃね?
自分専用ライブラリ
0937デフォルトの名無しさん
2006/01/27(金) 07:48:520938デフォルトの名無しさん
2006/01/27(金) 08:19:45もうちょっと詳しい説明を希望する
0939デフォルトの名無しさん
2006/01/27(金) 08:46:36multi_arrayの気に入らないところ話すか、どっちかだよなあ。
0940デフォルトの名無しさん
2006/01/28(土) 13:23:26ttp://www.tietew.jp/cppll/archive/6022
ここの2に書いてあることと完全に同じなのですが解決方法が
ttp://www.tietew.jp/cppll/archive/6031
これ以外にないでしょうか?
もうちょっと可読性のあるものが嬉しいのですがw
0941デフォルトの名無しさん
2006/01/28(土) 13:53:19getを無視して適当にこんなんでいいんじゃないの
std::mem_fun_ref(&boost::weak_ptr<T>::expired)
0942>∀<)っ-●○◎- ◆Pu/ODYSSEY
2006/01/28(土) 15:09:43(?!マッチさせたくない文字列) は無いと不便かなー。
0943デフォルトの名無しさん
2006/01/28(土) 16:10:28Perl互換の正規表現は確かに複雑で理解しにくいが、その分パワフルで魅力的だ。
0944デフォルトの名無しさん
2006/01/28(土) 17:34:42機能盛りだくさんだが不具合が多くて、バグフィックスが永遠に続くような
複雑なプログラムだと信頼を置けないって考えもある。
さらにPerl方式は最長一致で無いから複数の解がある場合の$0の長さの予想がやり難い。
0945デフォルトの名無しさん
2006/01/28(土) 17:59:39これには同意できない。
> さらにPerl方式は最長一致で無いから
これもダウトだな。
0946デフォルトの名無しさん
2006/01/28(土) 18:05:38事実に反するという指摘をしたかったのかな
0947デフォルトの名無しさん
2006/01/28(土) 19:07:20C++では好きなの使えばいいじゃん。
0948デフォルトの名無しさん
2006/01/28(土) 19:14:37大したwrapperじゃないけど。
0949デフォルトの名無しさん
2006/01/28(土) 21:28:57grep -Pオプションが使えないと腹立たしい。
0950デフォルトの名無しさん
2006/01/28(土) 21:35:250951デフォルトの名無しさん
2006/01/28(土) 21:39:22そうなるとC++0xの正規表現には何が
採用されるんだ?
0952デフォルトの名無しさん
2006/01/28(土) 21:51:32C++0xに採用されるのは仕様であって実装ではない。
0953デフォルトの名無しさん
2006/01/29(日) 13:36:440954>∀<)っ-●○◎- ◆Pu/ODYSSEY
2006/01/29(日) 15:39:09で十分だからなぁ現状。
argvがchar配列のポインタ配列である以上、C++特有のイテレータとか意識して再実装する必要ないような。
0955>∀<)っ-●○◎- ◆Pu/ODYSSEY
2006/01/29(日) 15:47:500956デフォルトの名無しさん
2006/01/29(日) 18:57:08typedef io::stream<T> stream_t;
typedef std::istreambuf_iterator<stream_t::char_type iterator_t;
iterator_t it(stream), end;
aaa(boost::iterator_range<iterator_t>(it,end));
microsoft visual studio 8\vc\include\boost-1_33\boost\range\iterator_range.hpp(61)
:error C2440: '<function-style-cast>' : 'std::istreambuf_iterator<_Elem,_Traits>' から 'std::_String_iterator<_Elem,_Traits,_Alloc>' に変換できません。
0957デフォルトの名無しさん
2006/01/29(日) 20:37:55threadが使えません(´・ω・`)
date-timeは使えるけど…
bjamに特殊なオプションがいりますか?
0958956
2006/01/30(月) 01:14:42エラーはaaaの中のせいでした
0959デフォルトの名無しさん
2006/01/31(火) 05:52:33separator ::= "/" // an implementation may define additional separators
て書かれてるんだけど、これって、boost のライブラリの
インプリによっては / の他にもセパレータを持っていいってことだよね?
そうすると、そのセパレータでもルートを表せるってこと?
root-directory ::= separator
0960デフォルトの名無しさん
2006/02/05(日) 02:19:050961デフォルトの名無しさん
2006/02/05(日) 07:15:22bll::bind(f, bll::_1, ...);
こういうことをよくやっていたんだけど、
最近になってADLがあるからこう書けることに気付いた。
bind(f, bll::_1, ...);
特にありがたいわけではないけれど。
0962デフォルトの名無しさん
2006/02/05(日) 07:49:51何言ってんのありがてーよ
0963デフォルトの名無しさん
2006/02/05(日) 08:50:01ADL自体はありがたいけど結局ついbll::bindと書いちまう。
自分の癖が未だ抜け切れていないだけ。
0964デフォルトの名無しさん
2006/02/05(日) 15:54:00bll::bind(f, _1, ...);
とかってしてる
0965デフォルトの名無しさん
2006/02/06(月) 07:42:24/ ヽ _____
l ´ ̄ `ヽ、_
_ゝ `ヽ、
-ニ/ ⌒ ト、 , -、 l
l , ‐ メ、} ,L_ _ノ
. l ,∠-‐' r- L -∠´ヽゝ__フ
v‐l | | l l l |
( ヽ|⊂⊃ `ー' ヽノ l
`ー、 ⊂⊃ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ゝ、_ r-, ノ < 次スレまだカナ?
/ ァェ-_ レ__ -‐ \________
/ | | ∨ |
. / lィ ̄| ム-‐|
ゞ l l ハ |
0966デフォルトの名無しさん
2006/02/06(月) 16:23:100967デフォルトの名無しさん
2006/02/06(月) 20:19:170968デフォルトの名無しさん
2006/02/07(火) 00:08:00消えるんじゃなかったっけ?
レス数、時間は曖昧だけどそろそろ危険領域(#゚∀゚)=3
0969デフォルトの名無しさん
2006/02/07(火) 03:25:09C++ のスレに書こうかと迷ったのですが、
Boost のヘッダ見て気づいたことなんで
こちらに書かせていただきます。
boost/interval.hpp をみていると
template<class T, class Policies>
class interval
{
中略
public:
template<class T1> interval(T1 const &v);
中略
};
というクラスがあり、上のように宣言されている
コンストラクタの定義を見ていると下のようになっています。
template<class T, class Policies> template<class T1> inline
interval<T, Policies>::interval(T1 const &v)
{
if (checking::is_nan(v)) set_empty();
else {
rounding rnd;
low = rnd.conv_down(v);
up = rnd.conv_up (v);
}
}
0970デフォルトの名無しさん
2006/02/07(火) 03:26:05使うとき、上のコンストラクタの T1 はどこいっちゃうんでしょうか?
どこで特殊化するんでしょうか?
0971デフォルトの名無しさん
2006/02/07(火) 03:42:08boost::interval<int> a('c'); // T=int, T1=char
boost::interval<int> b(true); // T=int, T1=bool
0972デフォルトの名無しさん
2006/02/07(火) 07:54:54http://pc8.2ch.net/test/read.cgi/tech/1139266461/
0973デフォルトの名無しさん
2006/02/07(火) 08:53:07靴を語ってどないすねん
0974デフォルトの名無しさん
2006/02/07(火) 08:55:240975デフォルトの名無しさん
2006/02/07(火) 11:22:170976デフォルトの名無しさん
2006/02/07(火) 11:29:35検索しないと出てきにくくなるかもね。
もう、なんか、やるせ茄子
0977デフォルトの名無しさん
2006/02/07(火) 17:57:02タイトル「template統合スレ -- part7 #include boost/」です。
0978デフォルトの名無しさん
2006/02/07(火) 18:06:55templateはC++の標準的な機能
C++相談室があるから「template統合スレ」はいらないよ
ポータブルライブラリ統合スレ(BOOST,Loki)
とかの括り方の方がまだよい
閑散としているのだから
STLスレもC++相談室に収束したほうがよいと思う
0979デフォルトの名無しさん
2006/02/07(火) 18:43:41次スレを立てる馬鹿が絶えず今まで続いてしまっている。
0980デフォルトの名無しさん
2006/02/07(火) 19:00:45「template統合スレ」が仮りに復活した場合
その話題は果たして「template統合スレ」でやるべきなのか?
C++相談室との住み分けが一目瞭然な名前で頼むよ
0981デフォルトの名無しさん
2006/02/07(火) 19:22:24>>978のようにLokiとかも含められるようなスレタイにしたほうがいいかと思われ
0982デフォルトの名無しさん
2006/02/07(火) 19:51:42→ C++ 相談室スレに統合
※ もし馬鹿が立てたとしてもスルーして落とす
・このスレ
→ C++ ライブラリ統合スレ(Boost/Loki/etc.)
で良い?
0983デフォルトの名無しさん
2006/02/07(火) 20:05:07話題全部受け入れるってことになっちゃいそうだが。
0984デフォルトの名無しさん
2006/02/07(火) 20:10:21ポータブルを入れるか
長いなら前に凖標準ライブラリなんて案もあったな
0985デフォルトの名無しさん
2006/02/07(火) 20:12:19一緒にした方がスレの速度も落ちない程度になっていいんじゃない?
確かにあまりマイナーなライブラリは答えられる人少ないだろうけど、
いろんなライブラリ使ってる人が集まるといろいろ勉強になるかもしれないし
0986デフォルトの名無しさん
2006/02/07(火) 20:17:46持ち込まれても混乱すると思うんだよな。
だから >>984 のようにポータブルとか準標準とか
っていう言葉は入っていてもいいと思う。
libhogehoge について、とか言われても困る。
0987デフォルトの名無しさん
2006/02/07(火) 20:23:45にしとけ。
boostは必ずしもマニア向けじゃないけれど、
現状、このスレはそうなっているので。
0988デフォルトの名無しさん
2006/02/07(火) 20:25:12C++ ライブラリ統合スレ(Boost/Loki/etc.) とかやったら、
Xercesとかtemplateと関係ないライブラリの話題でてくるぞ。
むしろ、template(STL,Boost,Loki)で、etcなしとか。
0989デフォルトの名無しさん
2006/02/07(火) 20:28:110990デフォルトの名無しさん
2006/02/07(火) 20:29:200991デフォルトの名無しさん
2006/02/07(火) 20:31:19templateって標準機能だから分ける利点が全くわからないよ
>templateと関係ないライブラリの話題でてくるぞ。
環境に依存しないのであればいいと思うよ
0992デフォルトの名無しさん
2006/02/07(火) 20:36:29vectorのoperator[]とat()の違いもこのスレでやるの?
そうなってくると分ける意味ないんじゃない?
やっぱり一般人に手を出すのに二の足を踏んでいるライブラリのスレだと思う。
0993デフォルトの名無しさん
2006/02/07(火) 20:39:51って、しばらく BOOTS を使うのも可だけどな。
0994デフォルトの名無しさん
2006/02/07(火) 20:43:49とりあえず新スレを「Boostを語れゴラァ part2」で立て直してきます.
0995デフォルトの名無しさん
2006/02/07(火) 20:46:160996デフォルトの名無しさん
2006/02/07(火) 20:55:04http://pc8.2ch.net/test/read.cgi/tech/1139313234/
0997デフォルトの名無しさん
2006/02/07(火) 21:22:36賛成
>>996
乙
0998デフォルトの名無しさん
2006/02/07(火) 22:42:020999デフォルトの名無しさん
2006/02/07(火) 23:13:271000デフォルトの名無しさん
2006/02/07(火) 23:18:1510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。