Boost総合スレ part10 (385レス)
Boost総合スレ part10 http://mevius.5ch.net/test/read.cgi/tech/1347611669/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
210: デフォルトの名無しさん [sage] 2014/08/25(月) 21:07:00.41 ID:S+r49QAC BOOST_ALL_DYN_LINKを定義しないと, libboost_の方にリンクする。 定義するとboost_の方へリンクしてDLLを使用するようになる。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/210
211: 208 [sage] 2014/08/26(火) 00:28:28.83 ID:00zrwMl9 >>210 ありがとうございます。 BOOST_ALL_DYN_LINKなるキーワードがあったのですね。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/211
212: デフォルトの名無しさん [sage] 2014/08/27(水) 03:36:26.18 ID:6l9mfgq+ #pragma comment(linker, "/NODEFAULTLIB:libboost_〜.lib") ってやって必要なcppだけ本体と一緒にコンパイルリンクするのが一番楽 http://mevius.5ch.net/test/read.cgi/tech/1347611669/212
213: デフォルトの名無しさん [] 2014/10/06(月) 22:24:43.15 ID:tIlHofLk ネットワーク関係はpocoと比べてどうなの? http://mevius.5ch.net/test/read.cgi/tech/1347611669/213
214: デフォルトの名無しさん [sage] 2014/10/26(日) 12:18:21.65 ID:/US9w/Z3 Boost spirit qiの、grammarに設定するinherited attributeについて どうしても分からない点があるので、質問します。 * ソースコードとエラーメッセージ全文 * http://pastebin.com/FaNQKEh1 コンパイラはVS2013 Pro Update3 の cl.exe (バージョン18.00.30723) boostのパッケージはバージョン1.55(7zip版)です。 inherited attributeとして自作の構造体を使用したいと思い qi::grammarのSignatureの引数部に自作の構造体を設定したところ 「その構造体にresultの定義がない」というエラーメッセージが起きコンパイルが失敗しました。 構造体の代わりにstd::string(resultというメンバは持っていないはず)を使用すると 問題なくコンパイルが通るので、inherited attributeに設定できる型に何か制約があるようにも思えるのですが boost.orgのドキュメントからはそれらしき記述が見つけられず、エラーメッセージを見ても私にはわかりませんでした。 海外含めて関連する情報がないか探したのですが(boost spirit qi inherited attribute requirement 等で検索) 解決策を見つけられませんでした。 inherited attributeに使用できる型の制約条件や、類似のコンパイルエラーとその対処方法をご存じであれば 教えていただきたく思います。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/214
215: デフォルトの名無しさん [sage] 2014/10/26(日) 15:46:28.32 ID:r2skli7n VS2013のC++でBoost1.56を使っているのですが、どんなプロジェクトを作ってもビルドすると コンパイルされたクラスの テンプレート のインスタンス化 'std::streamsize boost::iostreams::detail::copy_operation<Source,Sink>::operator ()(void)' の参照を確認してください みたいか警告がいつも数十行出るんですが、「参照の確認」とは何をどうすれば良いのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1347611669/215
216: デフォルトの名無しさん [sage] 2014/10/27(月) 22:32:16.46 ID:DoYepSGR >>214 エラー以前になんかInherited attributesの使い方と使いどころを基本から間違っていないか? ここの例を見る限り ttp://www.boost.org/doc/libs/1_56_0/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html 正規表現での後方参照みたいに一つのルール内でサブルールにマッチした結果によって 挙動を変えるルールを記述するときに使うものじゃないか? http://mevius.5ch.net/test/read.cgi/tech/1347611669/216
217: デフォルトの名無しさん [sage] 2014/10/28(火) 00:29:16.37 ID:uWcH6Wmu >>216 レスありがとうございます。 なるほど、想定されている使い方はこういったケースなのでしょうか。 だとしたらそもそも今回の私がやろうとしていたことには不適切だったかもしれませんね。 (パースするごとに、inherited attributeに設定したインスタンスに情報を反映させたかった) 余計なことは考えず、普通に対応するようにします。 コードについてですが、この例を参考にしてすこし試したところ 要するにboost::phoenixなオブジェクトであれば渡せるようで grammarのoperator()に渡す引数をphoenix::val(...)やref(...)で包めば コンパイルが通ることがわかりました。まだ動作確認はしていませんが・・・ ともあれ、ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/217
218: デフォルトの名無しさん [sage] 2014/10/30(木) 00:07:58.69 ID:lLBGJ4gC >>214,217 いまさらだがわかった範囲で言っておくと Inherited attributes に対する条件には ttp://www.boost.org/doc/libs/1_56_0/libs/spirit/doc/html/spirit/qi/reference/basics.html の > Some parsers (e.g. primitives and non-terminals) may take in additional attributes. Such parsers take the form: > p(a1, a2,..., aN) > where p is a parser. Each of the arguments (a1 ... aN) can either be an immediate value, or a function, f, with signature: > T f(Unused, Context) > where T, the function's return value, is compatible with the argument type expected and Context is the parser's Context type > (The first argument is unused to make the Context the second argument. This is done for uniformity with Semantic Actions). があって その immediate value の判定は boost::is_scalar か boost::spirit::traits::is_string のどちらかが真であるかで判定されてる。 けれど MyStruct はそのどちらにも該当しないので immediate value ではなくもちろん関数でもないから条件を満たさずエラーになる >>217でやったように phoenix の val, ref でラップすれば function, f のほうで条件を満たすことができるのでエラーにはならない ということだと思う http://mevius.5ch.net/test/read.cgi/tech/1347611669/218
219: デフォルトの名無しさん [sage] 2014/10/30(木) 11:39:19.54 ID:ImhG7AIb >>218 詳しく調べていただきありがとうございます。 「immediate value」判定を行っている個所を確認して、std::stringが通った理由も納得できました。 というか、かなり制限がきつかったんですね・・・そりゃ通らないわけだ。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/219
220: 片山博文MZ次期CEO ◆T6xkBnTXz7B0 [sage] 2014/11/01(土) 21:27:12.06 ID:jtBHZTX6 property tree使ったら、XMLの入出力は楽勝や! http://mevius.5ch.net/test/read.cgi/tech/1347611669/220
221: デフォルトの名無しさん [sage] 2014/11/07(金) 00:16:46.51 ID:HXLLL8gC 当然っちゃ当然なんだけど boost::functionとstd::functionって実装違うんだね・・・ boost::lambdaで作ったファンクタが、前者だと格納できて 後者だと格納できずにコンパイルエラーになるケースに遭遇したよ http://mevius.5ch.net/test/read.cgi/tech/1347611669/221
222: デフォルトの名無しさん [sage] 2014/11/11(火) 09:50:08.64 ID:Q0YP3r9c その違いはコンパイラの違いや、そのC++STLが対応するバージョンにもよるな VC++2013のstd::unordered_mapのキーに素直にtuple指定できないからboost::unordered_map使ったりしてる いずれ指定できるようになったらstdに戻す http://mevius.5ch.net/test/read.cgi/tech/1347611669/222
223: デフォルトの名無しさん [sage] 2015/01/05(月) 15:35:07.20 ID:eKet1BcH boost::unordered_mapのキーに生ポインタ入れるのはさすがにマズイよね? http://mevius.5ch.net/test/read.cgi/tech/1347611669/223
224: デフォルトの名無しさん [sage] 2015/01/05(月) 15:39:30.18 ID:8wARtoFz 問題ない http://mevius.5ch.net/test/read.cgi/tech/1347611669/224
225: デフォルトの名無しさん [sage] 2015/01/05(月) 19:12:49.53 ID:o8IVACxb 問題ないけどmapで扱わずメンバにすればと思った http://mevius.5ch.net/test/read.cgi/tech/1347611669/225
226: デフォルトの名無しさん [sage] 2015/01/05(月) 21:30:21.14 ID:X1Ja4Fny valueにshared_ptr、keyにはその生ポインタっていうのは良く使ってるなぁ http://mevius.5ch.net/test/read.cgi/tech/1347611669/226
227: デフォルトの名無しさん [sage] 2015/01/06(火) 01:03:54.45 ID:oPiR2ldc あ、特に問題はないのか。 何となくだけど、「生ポインタ入れたらヤバそう」って思い込んでたよ… http://mevius.5ch.net/test/read.cgi/tech/1347611669/227
228: デフォルトの名無しさん [sage] 2015/01/06(火) 10:02:24.08 ID:LjydeOaO ナマポ http://mevius.5ch.net/test/read.cgi/tech/1347611669/228
229: デフォルトの名無しさん [sage] 2015/01/06(火) 16:03:04.47 ID:2r6Mr9Ml 目的によるわな。 キーとしては単なる整数だしな。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/229
230: デフォルトの名無しさん [sage] 2015/01/07(水) 09:03:30.78 ID:ZvIwm56v 生ポの開放時にキーも削除又は解放後は使用されないのなら特に問題無さそう http://mevius.5ch.net/test/read.cgi/tech/1347611669/230
231: デフォルトの名無しさん [sage] 2015/01/11(日) 09:45:08.68 ID:9tA14JDu smart pointerのdeleterでキー削除すればいいと思うよ http://mevius.5ch.net/test/read.cgi/tech/1347611669/231
232: デフォルトの名無しさん [sage] 2015/01/21(水) 17:56:52.67 ID:jsrBE0pL http://boost.cppll.jp/ の文字化け問題っていつ治るの? 毎回EUCに切り替えるのめんどくせーんだけど http://mevius.5ch.net/test/read.cgi/tech/1347611669/232
233: デフォルトの名無しさん [sage] 2015/01/21(水) 18:34:30.53 ID:65s3laC/ 10年前から放置されたHPに文句言うなよww http://mevius.5ch.net/test/read.cgi/tech/1347611669/233
234: デフォルトの名無しさん [sage] 2015/01/22(木) 12:40:59.12 ID:/jHS8Rgv 文字化けなおしたのが、githubにコピーされてるよ。 ttp://www.freeml.com/cppll/14009 ttp://boostjp.github.io/archive/boost_docs.html http://mevius.5ch.net/test/read.cgi/tech/1347611669/234
235: デフォルトの名無しさん [] 2015/02/01(日) 22:32:38.38 ID:0ZgW1UY4 Windows8でVisual studio 2012にBoost1.57.0をビルドしようとしているのですが、失敗して困っています。 ネット上にあるboostのインストールのやり方を参考に、 bootstrap b2 toolset=msvc-11.0 --build-type=complete stage とビルドしたのですが、 ...failed updating 411 target... ...skipped 556 targets... ...updated 4241 targets... と出ます。エラーメッセージが大量に出るのですが、一部を見ると、 一番最初に link.jam no such file or directory というエラー出たり、 call "C:\Program Files (x86)\microsoft visual studio 11.0\vc\vcvarsall.bat x86>nul や ...failed msvc.archive bin.v2\libs\wave\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_wave-vc110-mt-s-1_57.lib ...skipped <pstage\lib> libboost_wave-vc110-mt-s-1_57.lib for lack of <pbin.v2\libs\wave\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi> libboost_wave-vc-110-mt-s-1_57.lib のように出ています。 ↓続く http://mevius.5ch.net/test/read.cgi/tech/1347611669/235
236: デフォルトの名無しさん [sage] 2015/02/01(日) 22:33:18.14 ID:0ZgW1UY4 sage忘れすみません 実はこのエラーに対面する前、bootstrapを実行するときに 'cl'は内部コマンドまたは外部コマンド操作可能なプログラムまたはバッチファイルとして認識されていません というエラーが出まして、それを解決するために http://blog.remu.biz/2011/04/vs2010boost.html このサイトを参考にC:\Program Files(x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.batに @SET VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 11.0 @SET VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC @SET FrameworkDir32=C:\Windows\Microsoft.NET\Framework @SET FrameworkVersion32=v4.0.30319 @SET Framework35Version=v3.5 の追加と ::@call :GetVSCommonToolsDir ::@if "%VS110COMNTOOLS%"=="" goto error_no_VS110COMNTOOLSDIR ::@call "%VS110COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit のコメントアウトの編集をしました。 もしかしたらそれが原因なのでしょうか?しかし元に戻してビルドを行ってみたのですがやはりビルドはできませんでした。 3日ほど悩んで答えが出なかったので皆さんの力を借りさせてください。お願いします。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/236
237: デフォルトの名無しさん [sage] 2015/02/02(月) 02:24:51.60 ID:E0RD/vzJ jamを別途インスコ http://mevius.5ch.net/test/read.cgi/tech/1347611669/237
238: デフォルトの名無しさん [sage] 2015/02/02(月) 02:58:34.63 ID:rg/FV5H5 >>235です。 すみません。初心者なものでjamというものが何を指しているのかわかりません。 bjam.exeならbootstrapの時にb2.exeと一緒に生成されています。 ぐぐるとboost-jamというものも見つかったのですが、これは古いバージョンのインストールに使うもの?のようでした。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/238
239: デフォルトの名無しさん [sage] 2015/02/02(月) 08:01:38.26 ID:GrIIWufd >>236 スタートメニューにあるVS2012 x86 Native Tools コマンド プロンプトから b2を呼んでるか? http://mevius.5ch.net/test/read.cgi/tech/1347611669/239
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 146 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s