Boost総合スレ part10 (385レス)
Boost総合スレ part10 http://mevius.5ch.net/test/read.cgi/tech/1347611669/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
203: デフォルトの名無しさん [sage] 2014/08/24(日) 21:50:12.26 ID:zFKb4A2a ついでに 逆にlink=staticとruntime-link=sharedの場合だと、 利用者が常に一つの.exeを作る場合には良いが 利用者も.dllを書いて、そちら側からもboostを利用する場合、 同様の問題が発生するので× そうすると一般用途にビルドを行う場合 link=static runtime=static link=shared runtime=shared この2つのパターンだけ用意すれば良いと思われる http://mevius.5ch.net/test/read.cgi/tech/1347611669/203
204: デフォルトの名無しさん [sage] 2014/08/25(月) 18:17:09.07 ID:K+Y1EV40 (´-`).oO (なんでboostとC標準のリンクオプションがわざわざ別々になってると思う?) http://mevius.5ch.net/test/read.cgi/tech/1347611669/204
205: デフォルトの名無しさん [sage] 2014/08/25(月) 18:52:52.89 ID:34Z9Wbr7 正直link=とruntime-link=のそれぞれの意味がわかってないけど、 とりあえずlink=staticのしか使ったことない。 runtime-linkのほうはMSVCのコード生成設定に合わせるけど。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/205
206: デフォルトの名無しさん [sage] 2014/08/25(月) 19:50:29.57 ID:TLgrT9xd >>204 解説よろしくお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/206
207: デフォルトの名無しさん [sage] 2014/08/25(月) 20:13:31.67 ID:S+r49QAC Express版の2010だとEula.txtが付属してないので、 /MDだと著作権的にグレーになってしまう。 /MTでコンパイルしないと公開できないw http://mevius.5ch.net/test/read.cgi/tech/1347611669/207
208: デフォルトの名無しさん [sage] 2014/08/25(月) 20:33:49.53 ID:34Z9Wbr7 ていうかMSVCで普通にプロジェクト作って普通にインクルード&ビルドしたら link=staticで作成されたファイル名のほうしか読みにいかなくない? マルチスレッドDLLでもマルチスレッドでもdebugでもreleaseでも。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/208
209: デフォルトの名無しさん [sage] 2014/08/25(月) 20:35:42.94 ID:34Z9Wbr7 208はexeを作ったときの話。dllについては知らない。 http://mevius.5ch.net/test/read.cgi/tech/1347611669/209
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 attribut
eに使用できる型の制約条件や、類似のコンパイルエラーとその対処方法をご存じであれば 教えていただきたく思います。 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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 153 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s