Boost総合スレ part10

2014/08/23(土) 04:37:08.56ID:ZWPa2xFI
>>195
一番まずいのはHeap破壊
libcのmallocで確保したポインタをmsvcrt.dllのfree呼び出す、あるいはその逆するとHeapがおかしくなる
2014/08/24(日) 01:03:29.49ID:z6SsqQq7
>>195,197
憶測で語るのはそこまで。不具合が実在するなら公式tracにバグ報告して貢献したほうがいい。
2014/08/24(日) 01:06:01.45ID:dSaHZUjz
不具合というか仕様だろ
知らんと嵌るが
2014/08/24(日) 01:57:11.06ID:z6SsqQq7
>>199
確かに >>197 のHeap破壊の件はboostと関係ないね。失礼。
exe側の標準ライブラリリンク方法を変えて対処すべきことを、側聞だけで基本マズいとか断言する >>195 みたいなの困るわ。
2014/08/24(日) 17:02:34.37ID:zFKb4A2a
いや、exe側のリンク方法を変えてもポインタを渡したらアウト、対処できない。
exeの作成者側が仕様を理解していれば、それで動作させることも可能だが、
一般的にそんな用途はない。
ライブラリのバージョンの特殊なテストとか普通にはない状況。
2014/08/24(日) 17:12:05.16ID:mYuQxuS2
結局>>193はやっちゃだめってこと
2014/08/24(日) 21:50:12.26ID:zFKb4A2a
ついでに
逆にlink=staticとruntime-link=sharedの場合だと、
利用者が常に一つの.exeを作る場合には良いが
利用者も.dllを書いて、そちら側からもboostを利用する場合、
同様の問題が発生するので×

そうすると一般用途にビルドを行う場合
link=static runtime=static
link=shared runtime=shared
この2つのパターンだけ用意すれば良いと思われる
2014/08/25(月) 18:17:09.07ID:K+Y1EV40
(´-`).oO (なんでboostとC標準のリンクオプションがわざわざ別々になってると思う?)
2014/08/25(月) 18:52:52.89ID:34Z9Wbr7
正直link=とruntime-link=のそれぞれの意味がわかってないけど、
とりあえずlink=staticのしか使ったことない。
runtime-linkのほうはMSVCのコード生成設定に合わせるけど。
2014/08/25(月) 19:50:29.57ID:TLgrT9xd
>>204
解説よろしくお願いします。
2014/08/25(月) 20:13:31.67ID:S+r49QAC
Express版の2010だとEula.txtが付属してないので、
/MDだと著作権的にグレーになってしまう。
/MTでコンパイルしないと公開できないw
2014/08/25(月) 20:33:49.53ID:34Z9Wbr7
ていうかMSVCで普通にプロジェクト作って普通にインクルード&ビルドしたら
link=staticで作成されたファイル名のほうしか読みにいかなくない?
マルチスレッドDLLでもマルチスレッドでもdebugでもreleaseでも。
2014/08/25(月) 20:35:42.94ID:34Z9Wbr7
208はexeを作ったときの話。dllについては知らない。
2014/08/25(月) 21:07:00.41ID:S+r49QAC
BOOST_ALL_DYN_LINKを定義しないと, libboost_の方にリンクする。
定義するとboost_の方へリンクしてDLLを使用するようになる。
211208
垢版 |
2014/08/26(火) 00:28:28.83ID:00zrwMl9
>>210
ありがとうございます。
BOOST_ALL_DYN_LINKなるキーワードがあったのですね。
2014/08/27(水) 03:36:26.18ID:6l9mfgq+
#pragma comment(linker, "/NODEFAULTLIB:libboost_〜.lib")
ってやって必要なcppだけ本体と一緒にコンパイルリンクするのが一番楽
213デフォルトの名無しさん
垢版 |
2014/10/06(月) 22:24:43.15ID:tIlHofLk
ネットワーク関係はpocoと比べてどうなの?
2014/10/26(日) 12:18:21.65ID:/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に使用できる型の制約条件や、類似のコンパイルエラーとその対処方法をご存じであれば
教えていただきたく思います。
2014/10/26(日) 15:46:28.32ID:r2skli7n
VS2013のC++でBoost1.56を使っているのですが、どんなプロジェクトを作ってもビルドすると
  コンパイルされたクラスの テンプレート のインスタンス化
'std::streamsize boost::iostreams::detail::copy_operation<Source,Sink>::operator ()(void)'
 の参照を確認してください
みたいか警告がいつも数十行出るんですが、「参照の確認」とは何をどうすれば良いのでしょうか?
2014/10/27(月) 22:32:16.46ID:DoYepSGR
>>214
エラー以前になんかInherited attributesの使い方と使いどころを基本から間違っていないか?
ここの例を見る限り ttp://www.boost.org/doc/libs/1_56_0/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
正規表現での後方参照みたいに一つのルール内でサブルールにマッチした結果によって
挙動を変えるルールを記述するときに使うものじゃないか?
2014/10/28(火) 00:29:16.37ID:uWcH6Wmu
>>216
レスありがとうございます。
なるほど、想定されている使い方はこういったケースなのでしょうか。
だとしたらそもそも今回の私がやろうとしていたことには不適切だったかもしれませんね。
(パースするごとに、inherited attributeに設定したインスタンスに情報を反映させたかった)
余計なことは考えず、普通に対応するようにします。

コードについてですが、この例を参考にしてすこし試したところ
要するにboost::phoenixなオブジェクトであれば渡せるようで
grammarのoperator()に渡す引数をphoenix::val(...)やref(...)で包めば
コンパイルが通ることがわかりました。まだ動作確認はしていませんが・・・
ともあれ、ありがとうございました。
2014/10/30(木) 00:07:58.69ID: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 のほうで条件を満たすことができるのでエラーにはならない
ということだと思う
2014/10/30(木) 11:39:19.54ID:ImhG7AIb
>>218
詳しく調べていただきありがとうございます。
「immediate value」判定を行っている個所を確認して、std::stringが通った理由も納得できました。
というか、かなり制限がきつかったんですね・・・そりゃ通らないわけだ。
2014/11/01(土) 21:27:12.06ID:jtBHZTX6
property tree使ったら、XMLの入出力は楽勝や!
2014/11/07(金) 00:16:46.51ID:HXLLL8gC
当然っちゃ当然なんだけど
boost::functionとstd::functionって実装違うんだね・・・
boost::lambdaで作ったファンクタが、前者だと格納できて
後者だと格納できずにコンパイルエラーになるケースに遭遇したよ
2014/11/11(火) 09:50:08.64ID:Q0YP3r9c
その違いはコンパイラの違いや、そのC++STLが対応するバージョンにもよるな
VC++2013のstd::unordered_mapのキーに素直にtuple指定できないからboost::unordered_map使ったりしてる
いずれ指定できるようになったらstdに戻す
2015/01/05(月) 15:35:07.20ID:eKet1BcH
boost::unordered_mapのキーに生ポインタ入れるのはさすがにマズイよね?
2015/01/05(月) 15:39:30.18ID:8wARtoFz
問題ない
2015/01/05(月) 19:12:49.53ID:o8IVACxb
問題ないけどmapで扱わずメンバにすればと思った
2015/01/05(月) 21:30:21.14ID:X1Ja4Fny
valueにshared_ptr、keyにはその生ポインタっていうのは良く使ってるなぁ
2015/01/06(火) 01:03:54.45ID:oPiR2ldc
あ、特に問題はないのか。
何となくだけど、「生ポインタ入れたらヤバそう」って思い込んでたよ…
2015/01/06(火) 10:02:24.08ID:LjydeOaO
ナマポ
2015/01/06(火) 16:03:04.47ID:2r6Mr9Ml
目的によるわな。
キーとしては単なる整数だしな。
2015/01/07(水) 09:03:30.78ID:ZvIwm56v
生ポの開放時にキーも削除又は解放後は使用されないのなら特に問題無さそう
2015/01/11(日) 09:45:08.68ID:9tA14JDu
smart pointerのdeleterでキー削除すればいいと思うよ
2015/01/21(水) 17:56:52.67ID:jsrBE0pL
http://boost.cppll.jp/ の文字化け問題っていつ治るの?
毎回EUCに切り替えるのめんどくせーんだけど
2015/01/21(水) 18:34:30.53ID:65s3laC/
10年前から放置されたHPに文句言うなよww
2015/01/22(木) 12:40:59.12ID:/jHS8Rgv
文字化けなおしたのが、githubにコピーされてるよ。
ttp://www.freeml.com/cppll/14009

ttp://boostjp.github.io/archive/boost_docs.html
235デフォルトの名無しさん
垢版 |
2015/02/01(日) 22:32:38.38ID: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

のように出ています。
↓続く
2015/02/01(日) 22:33:18.14ID: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日ほど悩んで答えが出なかったので皆さんの力を借りさせてください。お願いします。
2015/02/02(月) 02:24:51.60ID:E0RD/vzJ
jamを別途インスコ
2015/02/02(月) 02:58:34.63ID:rg/FV5H5
>>235です。
すみません。初心者なものでjamというものが何を指しているのかわかりません。
bjam.exeならbootstrapの時にb2.exeと一緒に生成されています。
ぐぐるとboost-jamというものも見つかったのですが、これは古いバージョンのインストールに使うもの?のようでした。
2015/02/02(月) 08:01:38.26ID:GrIIWufd
>>236
スタートメニューにあるVS2012 x86 Native Tools コマンド プロンプトから
b2を呼んでるか?
2015/02/02(月) 13:05:41.10ID:trPfkB+8
>>239
VS2012開発者コマンドプロンプトから呼んでました。
改めてVS2012 x86 Native Tools コマンド プロンプトでビルドしてみたのですが、failed updatingと言われ、ビルドできませんでした。
2015/02/02(月) 14:13:46.69ID:trPfkB+8
>>235です。
どこでエラーメッセージが区切られているのかわからなかったため、読み飛ばしてしまってました。これが全文のはずです。

if exist "bin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_random-vc110-mt-s-1_57.lib"
DEL "bin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_random-vc110-mt-s-1_57.lib"
C:\Users\ユーザー名\AppData\Local\Temp\b2_msvc_11.0_vcvarsall_x86.cmd
link /lib /NOLOGO /out:"bin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_random-vc110-mt-s-1_57.lib"
@"bin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_random-vc110-mt-s-1_57.lib.rsp"

...failed msvc.archive bin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_random-vc110-mt-s-1_57.lib
...skipped <pstage\lib> libboost_random-vc110-mt-s-1_57.lib for lack of <pbin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi> libboost_random-vc-110-mt-s-1_57.lib


DEL "bin.v2\libs\random\build\msvc-11.0\release\link-static\runtime-link-static\threading-multi\libboost_random-vc110-mt-s-1_57.lib"は確かにありました。
しかし、生成された日時を見るとこれはb2を実行した時に生成されたもののようです。
これはどうすればいいのでしょうか?
2015/03/02(月) 00:54:18.08ID:Hwlu4opX
Visual Studioでboostを使う自作の
 Static.lib プロジェクト
を作って、そのライブラリを使う自作の
 Console.exe プロジェクト
でリンクして使う場合、Console.exeのプロジェクトの設定で
リンカー
 追加のライブラリディレクトリ: C:\.....\stage\Win32\lib
とすればリンク出来て無事に実行できました。
このリンカーの設定は、Static.libを使うプロジェクトを作ると(今の場合Console.exe)、必ずしておく必要がありますか?
できればStatic.lib側のほうの設定でboostのリンクもできるなら、Console.exe側でやる手間が省けるのですが。
2015/03/03(火) 16:54:35.92ID:AGpwHs5d
boostのGILって標準ではBMPファイル読み込めないの?
ぐぐって出て来たnew&nbsp;ioってのはまだboost申請中?みたいだけど、これ使っておけばいいのかな?
2015/03/03(火) 21:11:19.83ID:xvH8TFuD
io_newでBMP読めたけど、色深度が読込むファイルと合ってないと例外発生するよ
2015/03/03(火) 22:56:19.91ID:AGpwHs5d
>>244
結構面倒くさい仕様だな…
勝手にフォーマット変更とかしてくれると便利だけどさすがに贅沢か…
2015/04/12(日) 00:28:36.73ID:g4+PudFo
boost.computeって正式に採用される予定あるの?
2015/04/21(火) 22:30:19.44ID:y8VTcogt
boost.pythonってstatic linkしてもpythonxx.dllは必要?教えてエロいひと。
2015/04/21(火) 22:33:35.19ID:1EHStcFK
いいえ
2015/04/22(水) 12:34:31.91ID:7M6Z+AJz
Win7 64bitで
python3.4 32bit版インストール
link=static runtime-link=static address-model=32でboost.pythonビルド
includeパスとlibパスを指定して、MTにして
#define BOOST_PYTHON_STATIC_LIB
#include <boost/python.hpp>
で32bitアプリケーションをビルド

pythonインストールしてないPCだと、python34.dll missingになる

うーん。何か足りないものありますか?
2015/04/22(水) 16:27:50.57ID:d3SYYAgE
モチベ
2015/05/01(金) 01:58:47.03ID:0XV7vRP4
boostの名前をつけるルールを
行列計算の時だけ破って
行列を大文字のAとかXにしてるの良くみるのですが
行列だけは例外的にルール破っていいことになってるのでしょうか
大文字はテンプレート変数ですよね?
2015/05/01(金) 06:41:31.41ID:8Yyb98Ue
行列ならば大文字になるのもいたしかたない‥
2015/05/24(日) 00:54:33.50ID:8pBQ8Eyo
boostってちょっとはC++ができる人が作ってるライブラリですよね?

ビルド時になんであんなに警告がでるんですか?
もしかして素人さん?
254デフォルトの名無しさん
垢版 |
2015/05/24(日) 12:38:51.82ID:MEnSJywT
いちいち警告気にしないのがプロ
255デフォルトの名無しさん
垢版 |
2015/05/24(日) 16:29:54.52ID:YWYjkrfU
難しすぎて警告どころではないとか
2015/05/24(日) 16:53:29.63ID:LHOaqm0Y
警告を調べて見れば分かるぞ、素人さん
2015/05/25(月) 17:47:01.78ID:x3KPbf/f
警告を出す側にもリテラシーが求められている訳です
2015/05/25(月) 18:28:28.99ID:qa+JUMyM
リテラシってなーに
2015/05/25(月) 20:07:15.35ID:Fk7XkuNr
2チャンをやってはいけません、ということ
2015/05/25(月) 20:16:21.95ID:qa+JUMyM
なるほどー
2015/06/06(土) 11:53:50.32ID:DXSt7rl7
boostって結構遅いんだな
2015/06/06(土) 11:56:08.52ID:+rQgIJZi
コンパイル時間をboostしてくれます
2015/06/06(土) 12:23:05.22ID:DXSt7rl7
コンパイル時間はどうでもいいです。
コンパイルなんて休憩時間くらいしかやらないから・・・
2015/06/06(土) 12:31:03.72ID:htxI56Um
コンパイル時間のことでないとすると
どのライブラリが何と比べてどれくらい遅いのかを書かないと
2015/06/06(土) 12:33:52.43ID:DXSt7rl7
ublasのvectorが自前で作ったものよりも
2015/06/06(土) 12:37:12.25ID:b3bO68kx
boostって実行時も遅いよな
2015/06/06(土) 12:52:10.14ID:htxI56Um
そうか大変だな
2015/06/06(土) 13:14:38.58ID:b3bO68kx
てかもう使ってないし
2015/06/06(土) 13:16:04.99ID:+rQgIJZi
そうかよかったな
2015/06/06(土) 15:54:55.27ID:sNpvOYgU
poco使え
2015/09/02(水) 17:09:56.87ID:DQQjJ9NG
コンパイルは遅い
272デフォルトの名無しさん
垢版 |
2015/11/03(火) 21:27:24.75ID:hk+PiOLT
使ってますか
2015/11/03(火) 21:42:20.64ID:i0g4PCT9
Boostがあれば何でもできる
2015/11/04(水) 11:14:56.51ID:tuc/GHuH
1 2 3 だー
275.パンティーガァル
垢版 |
2015/11/17(火) 21:19:23.78ID:s4bNHyHx
一時は随分持て囃されたようだが
コレもすっかりネタライブラリと化したなw
2015/11/19(木) 01:09:18.93ID:0U7CT6+W
ネタかどうかはともかく、PCのアプリ開発がビジネス的においしくないから
国内ではもっぱらプログラム廃人(w)の道具でしかない
2015/12/12(土) 07:43:19.75ID:D8DPAl+5
コンパイルがだるいのであまり使いたくないが、シリアライゼーションとファイルシステムは使いたいんだよな
2015/12/12(土) 08:27:40.06ID:Jcuermv/
nugetにあるじゃん
279デフォルトの名無しさん
垢版 |
2015/12/18(金) 23:28:22.35ID:vCtvI+uE
Version 1.60.0
http://www.boost.org/users/history/version_1_60_0.html
2015/12/19(土) 11:58:40.26ID:O2ZUrLIw
っとコンパイルしてみようっと
281デフォルトの名無しさん
垢版 |
2015/12/19(土) 12:40:41.91ID:P/E9W26M
Lapackもっと気持ちよく使えるようにして欲しいなあ
2016/01/18(月) 05:50:39.36ID:mFzGs0rQ
boost::geometryって2Dは充実してきてるけど、3Dへの拡張は現状どんな感じですか?
2010年くらいに将来やる予定って開発者が言ってた気がするけど
283282
垢版 |
2016/01/19(火) 00:15:43.99ID:4raSQRby
フォーラム見たら3Dへの拡張は全体的にまだまだって感じですね
せっかくトレイト使ってジェネリックにやってるんだから早く実装して欲しい・・・
2016/01/20(水) 22:24:02.62ID:KeJuY5Mf
boost graphのドキュメントがクソ
285デフォルトの名無しさん
垢版 |
2016/04/05(火) 02:48:34.34ID:2X2ng6yq
age
286デフォルトの名無しさん
垢版 |
2016/04/21(木) 22:40:40.88ID:0L9uK1O2
parallel BGLのドキュメントがくそ
2016/05/11(水) 16:53:35.32ID:GzlL/1jH
つか、boost自体がくそ
288デフォルトの名無しさん
垢版 |
2016/05/11(水) 17:04:40.20ID:CRgs0nLf
じゃもっといいものにしてください
289デフォルトの名無しさん
垢版 |
2016/05/13(金) 00:38:47.56ID:gIaucaE3
read_iniでファイルを読み込んだ時
セクションが1つも設定されていない場合にエラーを出力したいのですが
セクションだけを取得する方法はありますか?
漠然とした質問ですみません。

boostのバージョンは1.54です
2016/05/13(金) 01:16:17.32ID:+/HM4ABC
>>289
read_iniの第2引数にptree渡せばiniファイルの中身取ってこれる
http://stackoverflow.com/questions/16135285/iterate-over-ini-file-on-c-probably-using-boostproperty-treeptree

ところで、ホントにセクション全部取ってくる必要あるの?
空のファイルかどうかやファイルの存在有無のチェックでよかったりしない?
291デフォルトの名無しさん
垢版 |
2016/05/13(金) 07:24:40.50ID:Vn8cSOwV
>>290
ID変わりました。>>289です。
ご回答ありがとうございます

ファイルの中身が、str=100だけなど
セクション名が無く、キーとキー値しかない場合
にもエラーを出力したかったので感謝です。
292デフォルトの名無しさん
垢版 |
2016/05/13(金) 14:15:20.29ID:Vn8cSOwV
また質問ですみません。

iniファイルにセクション名のみ書かれている場合にエラーを出力したいのですが
>>290の方法でやってもセクション名を取得出来ませんでした。read_iniで確認するには
どうすればいいでしょうか?
2016/05/14(土) 12:21:03.53ID:9OXVbH7e
>>292
boost/property_tree/ini_parser.hppの105行目と141行目で
読みだしたセクションにキーがないときはそのセクションの情報を捨ててる

だから、セクション名だけのiniファイルを読み込ませたときは
空のiniファイルを読み込ませたのと同じ状態になるみたい

見たのは1.61だけど、1.54も多分同じ
2016/06/09(木) 14:28:47.90ID:zBUCyUfh
次期標準ライブラリとまで言われたのに嫌われてる?
2016/06/09(木) 15:49:16.84ID:KqeHMSOJ
嫌われてるんですか?
2016/06/09(木) 15:51:36.39ID:lRCEzphN
嫌われてるの?
2016/06/09(木) 15:51:36.50ID:Cn/2kag2
>>294
ちゃんと次期標準としての役割は果たしてて、
次のC++ではfilesystemやoptionalが取り込まれるよ

バージョンアップがちょくちょくあるから、仕事ではちょっと使いづらいところもあるのかも
298デフォルトの名無しさん
垢版 |
2016/06/09(木) 16:46:39.42ID:KqeHMSOJ
ですよね。thread関連はメンテだけになるかもしれませんが。
2016/06/09(木) 17:43:46.93ID:a+2yNvRj
UTF-16デフォルトなWindowsだと使いにくくてなぁ
300デフォルトの名無しさん
垢版 |
2016/06/09(木) 19:32:49.78ID:KqeHMSOJ
そうなんですか? 未だにSJISだと思ってましたw
301デフォルトの名無しさん
垢版 |
2016/06/10(金) 06:42:33.29ID:u2soNk9a
SJISでしか動かないのは、batのバッチプログラムぐらい。
ファイルにSJISに含まれない文字を含むファイル名をつけて、batで呼び出せるかどうか試してみればいい。
2016/06/10(金) 09:39:39.13ID:XqAkh7YW
Win2000/XP に移行した時に Unicode ベースのシステムになった
でもレガシーなAPIを大事にお守りするせいでなかなか SJISが死なない
Windows10 と心中することになりそうだな
2016/06/10(金) 14:47:14.07ID:ZMnsYyke
NT系は最初の3.1からUnicodeなんだが
5.0の時にUCS-2からUTF-16になったくらいで
2016/06/10(金) 16:45:29.54ID:8yNz9kCr
VCのコンパイルオプションにBOM無しUTF-8読み込みの許可を加えるまでは糞
2016/06/10(金) 20:09:50.16ID:ZMnsYyke
BOMつければ済むC/C++コンパイラよりUTF-8を一切受け付けないリソースコンパイラの方を先になんとかしてくれ
2016/06/11(土) 11:50:18.06ID:rFA30bCg
#pragma code_page(65001)
2016/06/11(土) 14:18:45.78ID:JLuyjHOS
Pragma Directives
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa381031(v=vs.85).aspx
This pragma is not supported in an included resource file (.rc). Therefore,

example:
#include "English.rc"
#pragma code_page(932)
#include "Japanese.rc"
2016/06/11(土) 16:54:13.93ID:ve5pyeaw
>>306-307
それ使ってもBOM入れるとエラーとかC/C++ソースと逆の状態で地獄の様相を呈してるぞ
おまけにリソースエディタで編集すると問答無用でCP932で上書きされるという
2016/06/25(土) 18:04:18.92ID:0uMhZ5yd
なんでboost.guiがないの?
チャラくなっちゃうから?
2016/06/26(日) 03:24:45.47ID:bp4CfyDu
どのgui環境に対するtoolkitを要求してるの?
2016/06/30(木) 16:51:13.09ID:I86oszq6
beginとかendとか書くの面倒だな〜と思ってboost.range.algorithmsを調べてると
途中から|=とかadaptorsとか出てくるのですが
これは同じライブラリの話なのでしょうか?
もしくは全く別の二つのライブラリなのでしょうか?
2016/07/01(金) 18:57:17.98ID:dukX0h6O
>>311
どちらもBoostライブラリの一部
さらに、どちらもBoost.Rangeライブラリの一部

ヘッダファイルは別
boost/range/algorithm.hpp
boost/range/adaptors.hpp

お互いに独立しているから、別々に使っても問題ない
2016/09/03(土) 19:00:02.22ID:YfCK8gma
書いて
2016/11/10(木) 01:28:10.39ID:OAKAAmWh
ぶんぶんぶーすと
2016/12/16(金) 20:08:11.49ID:qhGUM7zP
Eigenでもublasでも動く行列計算プログラムをテンプレート使えば出来ないかな
size1,size2とcolums,rowsが互換ないので挫折してるんだけど
2017/01/31(火) 13:48:14.43ID:cHCMKeND
すんごい初歩的な質問で申し訳ないんだけど、
boost::serializeを使用するとき、register_typeを行う責任は誰にあるんだろう。

保存したいオブジェクトツリーをすべて内包するenvironmentクラスで一括して
すべてのクラスのregister_typeを行うべきなのか、それともその中の個別オブジェクト単位で
自身及びその子が使用する可能性のあるクラスのみを扱うべきなのか。

たとえば、
environmentクラスの中にdomain1とdomain2のサブオブジェクトツリーがあり、
シリアライズ順もdomain1->domain2とした場合、
domain2内でのみ使用していたクラスをdomain1でも使うように拡張することになって、
そちらでもregister_typeを行うことになると、オブジェクトidの対応が崩れちゃうよね

このケースではシリアライズのバージョンで対応できる範囲を逸脱しちゃうと思うんだけど。
どうするべきなんだろう。
2017/01/31(火) 23:36:50.81ID:ubkZ1wL6
そういうケースではBOOST_CLASS_EXPORT系のマクロで明示的にクラスとシリアライズ用IDを関連付けするんじゃないか
2017/02/02(木) 16:13:10.51ID:sVI7zoPy
なるほど、ありがとう。
2017/02/25(土) 00:04:09.61ID:MSqa8twS
boost liberty の全API をテストするコードってある?
2017/02/25(土) 17:09:39.62ID:usTDxsWv
テスト走らせれば
2017/02/25(土) 18:35:41.80ID:MSqa8twS
ごめん、質問が悪かった。
Boost Library の 全API をテストするテストコードはありますか?
2017/02/26(日) 01:02:24.11ID:0qHcAuFD
全APIのテストなのか中身は知らないがこのへん関連だろ
ttps://github.com/boostorg/regression
2017/02/27(月) 09:54:53.83ID:xWycJXOi
Pythonありきだよね、ありがとう。
2017/04/08(土) 14:31:30.64ID:8o5hcs67
Allocatorだけ変えればcudaでも動く?
deviceという不思議な修飾子をtempleteに入れる方法がわからないが
2017/06/16(金) 17:49:46.14ID:I/6vJIh0
double ar[50];
ublas::matrix au(10,50,ar);
みたいなことをeigenだとmapで
できるけどublasはどうすればいいの?
2017/08/22(火) 11:41:01.46ID:taHMJpBI
1.64で入ったこのバグが1.65でも直ってない
https://svn.boost.org/trac10/ticket/12723

adjustments to make test_dll_simple pass
とかふざけた理由で必須ヘッダーを勝手に削除するとかなめてんのか死ね
2017/10/24(火) 21:00:14.84ID:A/5ZW6Io
boost::spiritで質問させてください
http://www.kmonos.net/alang/boost/classes/spirit.html
このサンプルコードで四則演算をやっている部分がありますが、resultの型をvector<char>などにして
int型の計算結果ではなく+-/*の4つの演算子をresultで取得するにはどのようにすればよいのでしょうか。
出力される演算子の順番は数があっていればよいです。
2017/10/24(火) 21:46:16.76ID:5YrUgwk0
>>327
どいう出力がほしいのかがよくわかんないんだけど、適当な入出力の例を出してもらえます?
2017/10/24(火) 21:55:13.78ID:Nipp6M8f
>>328
1+2-3/4*5*5*5*5 と入力したら
result[0]が'+'
result[1]が'-'
result[2]が'/'
result[3]が'*'
result[4]が'*'
result[5]が'*'
result[6]が'*'といった感じに取得したいです。

resultをvector<int>として
result[0]が1
result[1]が2
result[2]が3
result[3]が4
result[4]が5
result[5]が5
result[6]が5
でもいいです。

要は、パースしたときの任意の要素を取得したい、ということです。
330329
垢版 |
2017/10/25(水) 12:26:35.26ID:RJdooZ2I
自己解決しました
2017/10/26(木) 12:51:32.71ID:szUQF6lc
>>330
どう解決したかを是非。
2017/10/30(月) 23:02:21.71ID:TQ7eO1pJ
>>326
1.65で直ってるようだが
削除された boost/serialization/detail/get_data.hpp をincludeしてるやつが残ってただけの問題ぽい
2017/12/29(金) 08:39:43.54ID:xmeHjPXR
ublasで蜜行列演算にmkl使えるのは知ってるけど、疎行列演算には使える?
2018/02/13(火) 09:03:13.61ID:ib6QEVBg
boost.stacktraceで出力が以下のようになり、行数やファイル名が出力されません。
create a window.0x2C8766FA (dbgeng.dll) で例外がスローされました (app.exe 内): 0xC000001D: Illegal Instruction
0# 0x001E08DA in app
1# 0x001CF856 in app
...
9# 0x001F3C28 in app
10# BaseThreadInitThunk in kernel32
11# RtlInitializeExceptionChain in ntdll
12# RtlInitializeExceptionChain in ntdll

・環境…visual studio 2017 community&Nugetで取得したboost-vc141
・再現するコード
#define BOOST_STACKTRACE_LINK
#define BOOST_STACKTRACE_USE_WINDBG
#define BOOST_STACKTRACE_USE_ADDR2LINE
#include <boost/stacktrace.hpp>
#include <iostream>
#pragma comment(lib, "libboost_stacktrace_windbg-vc141-mt-gd-x32-1_66.lib")
void f() {std::cout << boost::stacktrace::stacktrace();}
int main() {f(); return 0;}

Nugetで取得したboostは以下のようなフォルダがあり、そのなかにlibboost_stacktrace_**.libがあります。
 boost_stacktrace_noop-vc141.1.66.0.0
 boost_stacktrace_windbg_cached-vc141.1.66.0.0
 boost_stacktrace_windbg-vc141.1.66.0.0
boost_stacktrace_addr2line-vc141.1.66.0.0みたいな名前のフォルダがないため、libboost_stacktrace_addr2line**.libみたいなファイルもありません。それが原因な気がするのですがNugetで取得するのではなくソースからビルドしても変わらない気がします。
なのでboost.stacktraceはmsvcでは行数表示はサポートしていないということではないかと思っているのですが、あってるでしょうか?
2018/02/14(水) 22:51:28.21ID:kBNifDWP
http://www.boost.org/doc/libs/1_66_0/doc/html/stacktrace/configuration_and_build.html
BOOST_STACKTRACE_USE_ADDR2LINEがvcでサポートされてないのは確かだな
336334
垢版 |
2018/02/15(木) 00:11:58.35ID:tCvyFr2o
>335
ありがとうございます。Platforms列を見れば良いことに気づきました。
自分で書こうと思います。
337デフォルトの名無しさん
垢版 |
2018/02/26(月) 21:02:17.66ID:dPho+2cQ
https://github.com/boostorg/filesystem/blob/develop/src/operations.cpp で、
Posix 環境はファイルコピーのバッファが

const std::size_t buf_sz = 32768;

で、Windows 環境は

const std::size_t buf_size=128;

の理由をおしえてくれめんす。
2018/02/27(火) 00:18:23.58ID:8AKTR9z8
WinはAPI呼び出してるだけだからソース読み間違えてるぞ
2018/03/15(木) 20:09:58.62ID:yS5ipMZT
Boostを使って
圧縮ファイルの中の特定のファイルを解凍するというのはできるのでしょうか?
2018/03/30(金) 03:50:07.93ID:OeBMTFJE
socket.cancel()、非同期な関数にしか効かないようなソースコメントやら、web情報見かけるんだけど、socket.recieve()に効くのはなんでやろ?
読み間違えてて使えるようになったとかなんかな。
なお、win10 boost 1.66で試しました。
土日でlinux試してみるつもりだけど処理系依存なのかな。
341デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:19:45.93ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

80D65
342デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:26:02.35ID:RfoszcD2
CM0
343デフォルトの名無しさん
垢版 |
2018/12/12(水) 22:11:38.00ID:Gkf+46Kq
Version 1.69.0
December 12th, 2018 02:58 GMT
https://www.boost.org/users/history/version_1_69_0.html
344デフォルトの名無しさん
垢版 |
2019/04/14(日) 18:52:03.25ID:YohaqxbG
Version 1.70.0
April 12th, 2019 06:04 GMT
https://www.boost.org/users/history/version_1_70_0.html
345デフォルトの名無しさん
垢版 |
2020/07/22(水) 20:58:36.13ID:u8zoOFyR
Visual Stadio2019でboost Python使いたいけど
コンパイル済みバイナリーが古いのしかないみたい
新しいのどこか知らないですか?
346デフォルトの名無しさん
垢版 |
2020/07/23(木) 00:32:11.54ID:4rdlbzE6
コンパイルしたらいいやん
347デフォルトの名無しさん
垢版 |
2020/07/23(木) 19:42:06.76ID:RkdUmux0
何処かのconfig.hに古いVisual Studioのバージョン番号が直書きしてあるらしく、古いvisual studioのバージョン番号がついたdllが生成される
348デフォルトの名無しさん
垢版 |
2020/07/23(木) 21:01:15.25ID:0ZuGEqzO
pybind11使った方がいいんじゃないの?
2020/07/23(木) 21:24:25.69ID:SUKPW4AG
pythonのは使ってないから動くか知らんけどvcpkgには入っとるで
350デフォルトの名無しさん
垢版 |
2020/07/24(金) 10:34:44.41ID:qMgm686n
>>347
config.hじゃなくて環境変数だったり
あるいは`〜`の実行結果だったり
351デフォルトの名無しさん
垢版 |
2020/07/24(金) 15:37:03.90ID:My3QjSVo
VCPKGのBoostは常に新しい。
良い事とは限らないが。
352デフォルトの名無しさん
垢版 |
2020/07/27(月) 15:54:19.58ID:ux/3EI2L
boost-python あきらめて
pybind11にしてみたけど
python3.7しかインストールしてないのに
python3.8のinitがないというエラーで動かない
353デフォルトの名無しさん
垢版 |
2020/07/27(月) 16:04:49.04ID:ux/3EI2L
windows糞すぎる
下請けが上の勝手な環境に
すごい頑張って合わせないと
C++とpythonの連携
動かすだけで1週間ぐらい消える

日本でWindowsユーザー多い理由は
そういうことだと理解した

下請けが頑張って合わせるの拒否すればWindows使う人減るのに
354デフォルトの名無しさん
垢版 |
2020/07/27(月) 16:13:58.01ID:vNtx9fDh
おま環
355デフォルトの名無しさん
垢版 |
2020/07/27(月) 17:58:36.21ID:NsfDBFYW
いろんなアプリが独自にpythonをインストールする。
どのパスのpythonが呼ばれているか調べてみては。
2020/08/11(火) 19:29:17.92ID:3wTAQydO
組み込みはLuaにすればそういう難儀なハナシは一切ないけどね
スタティックリンクしてビルトインしても300KB切るぐらいだし
2020/10/22(木) 20:02:39.21ID:Ztx90rC8
x86版とx64版でライブラリファイルを作成したいのだけど、msvcのバージョンってどうやって調べられる?
boostの導入に関する解説を見ても、それについて触れずにさらっと流されてるから再現出来なくて困る
2020/10/23(金) 12:31:16.22ID:4Cq9U5BR
今使うコンパイラのバージョンが知りたいのかランタイムで知りたいのか?
2020/10/23(金) 22:20:45.80ID:BCTw4Vdp
コンパイラの方です
2020/10/24(土) 01:19:27.77ID:jTW1CdGL
VSのツールからコマンドプロンプト開いて
cl
て実行する。
2020/10/24(土) 06:59:45.92ID:QYq4aWxy
ここの「内部バージョン」じゃダメかね
https://ja.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#%E8%A3%BD%E5%93%81%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%A8%E5%86%85%E9%83%A8%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3
2020/10/24(土) 20:58:15.91ID:k6HOXbpL
>>361
無事にコマンドプロンプトが荒ぶってます。ありがとう

>>360
なぜか19.2xxxxxの数字が出てきました
Native Tools Command Promptとは別のコマンドプロンプトだったのかな
2020/10/25(日) 00:36:53.90ID:wjzNX4u+
いやMSCのバージョンといえば普通これだと思うが。
_MSC_VERとか_MSC_FULL_VERの値だよ。
wikipediaに書いてあるところの内部バージョンはcl.exeのインストールディレクトリ見れば
〜\VC\Tools\MSVC\14.27.29110\bin\〜
とかになってるのでわかる。
そのコマンドプロンプトでpathって打てば割と前の方に出てくる。
364デフォルトの名無しさん
垢版 |
2020/11/01(日) 11:43:04.11ID:CQ0FTSen
https://trends.google.co.jp/trends/explore?q=%2Fm%2F034w42

中韓のボリュームが大きいということは、ゲームで使われているのでは。
2020/11/01(日) 20:30:31.19ID:PUn8GnnK
何で日本語でトレンド測ってんだ
366デフォルトの名無しさん
垢版 |
2020/11/02(月) 01:16:40.50ID:cIYvgR5B
>>365
カテゴリ自体は英語も日本語もない。
367デフォルトの名無しさん
垢版 |
2020/11/06(金) 07:12:14.22ID:FaSUQUNx
progress_displayはC++20にも入らないみたいですね。
2020/12/29(火) 12:20:53.86ID:4e7Fp8yU
macOSでb2でビルドしたboostをxcodeで使おうとしたところ
大量のリンカエラーが Undefined symbol:std::string::_Rep::_M_destroy(... referenced from:
boost::system... in libboost_thread.a(thread.o
boostがライブラリにstdlib++を使っているからこうなるらしくlibc++を使わせてビルドすべく
https://stackoverflow.com/questions/8486077/how-to-compile-link-boost-with-clang-libc
この辺を参考にやってみるも同じリンカエラーが消えず

そこで質問なのですが、このリンカエラーはboostがstdlib++を使っていることが原因という見立ては合ってますか?
そうであれば、boostをlibc++を使ってビルドするにはどうすればいいですかね?
2020/12/29(火) 12:41:42.93ID:pOj5Hj0F
>>368
>boostがライブラリにstdlib++を使っているからこうなるらしく
何を見てこう言ってるのか示してくれればそれを確かめるぐらいの人は出てきやすいかもね。
2020/12/29(火) 12:49:23.28ID:4e7Fp8yU
http://www.366service.com/jp/qa/4635b921665b244600e769a6f5e94403
これ、の元英語版ですね(URL失念)
2020/12/31(木) 01:10:27.91ID:u9R6p7NQ
1.74まではb2を起動する前に環境変数をいじれば色々と細工ができたけど
1.75のb2からそれができなくなった。
2021/03/30(火) 16:46:05.11ID:SIhnL2vq
boost::posix_time::ptimeのバイナリシリアライズではまった
x86_64-w64-mingw32でシリアライズしたものをx86_64-linux-gnuで読みたい
examples/libs/serialization/exampleにある
portable_binary_iarchiveとportable_binary_oarchiveを使ってもだめ
原因はどうもlongの長さがx86_64-w64-mingw32で4バイトであるのに対して
x86_64-linux-gnuで8バイトなのが原因のようだ
373デフォルトの名無しさん
垢版 |
2021/09/25(土) 18:25:00.93ID:l9LRkEk/
$ cat hoge.cpp
#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>
using namespace std;
using namespace boost::posix_time;
int main ()
{
ptime t0 (microsec_clock::local_time ());
ptime t1 (second_clock::local_time ());
cout << "t0: " << to_iso_string (t0) << '\n'
<< "t1: " << to_iso_string (t1) << '\n';
return 0;
}
$ g++ hoge.cpp
$ ./a.out
t0: 20210925T182058.919287
t1: 20210925T182058
t0をt1のように秒までの精度で出力したいのですが
どうすればできるでしょうか?
2021/09/25(土) 18:49:53.75ID:l9LRkEk/
半年前のレスは俺のスレではないかww
ここは誰もいないインターネッツですか?
2021/09/25(土) 18:55:11.48ID:YPTL2mI+
コロナワクチン3回目のboost接種してから、もう一度来てください
376373
垢版 |
2021/09/25(土) 19:14:58.56ID:l9LRkEk/
とりあえずstring::substrを使うことにしました
cout << "t0: " << to_iso_string (t0).substr (0, 15) << '\n';
C++ユーザ減ったなぁ....
2021/09/25(土) 20:07:37.17ID:MTGu+1Tf
std::chronoだと、精度違いを変換できたと思うんやけど、Boostはムリなん?
出力時の精度を指定するんじゃなくて、必要な精度のオブジェクトに変換したら?
378373
垢版 |
2021/09/25(土) 22:12:31.29ID:l9LRkEk/
>>377
レス有難うございます
>必要な精度のオブジェクトに変換したら?
これを探しています

chronoはstdに入ったんですね
379デフォルトの名無しさん
垢版 |
2021/09/25(土) 23:43:26.58ID:wzNzdXVE
このスレ立ったの2012年か
380373
垢版 |
2021/09/25(土) 23:49:49.54ID:l9LRkEk/
この書き込みの少なさは今のC++ユーザの数を反映している?
2021/09/25(土) 23:56:30.24ID:MTGu+1Tf
>>378
> >必要な精度のオブジェクトに変換したら?
> これを探しています

duration_cast<>()みたいなんないん?
https://cpprefjp.github.io/reference/chrono/duration_cast.html

> chronoはstdに入ったんですね

C++11やで!w
ほなら乗り替えたら?
2021/09/26(日) 23:48:48.09ID:PFNrbKFP
現代C++に必ずしもBoostが必要ではないのもあるかもしれんが
書き込み少なすぎる気はするね
383デフォルトの名無しさん
垢版 |
2021/09/28(火) 06:51:46.27ID:3lUp+36x
バイデン氏、追加接種受ける ワクチン懐疑派に呼び掛け:AFPBB News
https://www.afpbb.com/articles/-/3368139
2021年9月28日 3:23 発信地:ワシントンD.C./米国 [ 米国 北米 ]

【9月28日 AFP】ジョー・バイデン(Joe Biden)米大統領(78)は27日、米製薬大手ファイザー(Pfizer)製新型コロナウイルスワクチンの追加接種(ブースター接種)を受け、まだ接種を受けていない米国民は国に損害を与えていると訴えた。

 米保健当局は最近、65歳以上の高齢者や、新型ウイルス感染症の重症化リスクが高い基礎疾患のある成人、感染リスクの高い職業に従事する人について、追加接種を承認していた。

 ホワイトハウス(White House)で追加接種を受けたバイデン氏は、「そうは見えないけれど、私は65歳以上だ」と冗談を飛ばした。同氏は1回目と2回目の接種を、いずれも就任前の昨年12月と今年1月に受けていた。

 バイデン氏は、米国民の77%が接種を受けたが、接種率は十分ではなく、まだ4分の1近くの人々が接種を拒んでいると指摘。「この特異な少数派が、たくさんの人々、この国のその他の人々に対し、ひどい損害を引き起こしている」と述べ、「正しいことをしてほしい」と訴えた。(c)AFP
384デフォルトの名無しさん
垢版 |
2021/09/28(火) 16:18:33.79ID:nD0g4rLv
boostワクチン
385デフォルトの名無しさん
垢版 |
2024/04/16(火) 15:07:36.68ID:ZKGNEpnp
boost1.85が出たけどVS2019でbcp.exeのコンパイルに失敗
1.84までは全く問題なかったので不具合だと思う。1.86を待つか。
レスを投稿する