X



Boost総合スレ part10
0001デフォルトの名無しさん
垢版 |
2012/09/14(金) 17:34:29.08
過去スレ
Part 9http://toro.2ch.net/test/read.cgi/tech/1275014987/
Part 8 http://pc12.2ch.net/test/read.cgi/tech/1251446016/
part 7 http://pc12.2ch.net/test/read.cgi/tech/1232367742/
part 6 http://pc11.2ch.net/test/read.cgi/tech/1207749841/
part 5 http://pc11.2ch.net/test/read.cgi/tech/1192662575/
part 4 http://pc11.2ch.net/test/read.cgi/tech/1175663346/
part 3 http://pc11.2ch.net/test/read.cgi/tech/1158991211/
part 2 http://pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 http://pc8.2ch.net/test/read.cgi/tech/1091198276/

■関連サイト■
Boost C++ Libraries
http://www.boost.org/

Boost 翻訳プロジェクト
http://boost.cppll.jp/HEAD/

Let's Boost
http://www.kmonos.net/alang/boost/

boost info
http://shinh.skr.jp/boost/
0234デフォルトの名無しさん
垢版 |
2015/01/22(木) 12:40:59.12ID:/jHS8Rgv
文字化けなおしたのが、githubにコピーされてるよ。
ttp://www.freeml.com/cppll/14009

ttp://boostjp.github.io/archive/boost_docs.html
0235デフォルトの名無しさん
垢版 |
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

のように出ています。
↓続く
0236デフォルトの名無しさん
垢版 |
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日ほど悩んで答えが出なかったので皆さんの力を借りさせてください。お願いします。
0238デフォルトの名無しさん
垢版 |
2015/02/02(月) 02:58:34.63ID:rg/FV5H5
>>235です。
すみません。初心者なものでjamというものが何を指しているのかわかりません。
bjam.exeならbootstrapの時にb2.exeと一緒に生成されています。
ぐぐるとboost-jamというものも見つかったのですが、これは古いバージョンのインストールに使うもの?のようでした。
0240デフォルトの名無しさん
垢版 |
2015/02/02(月) 13:05:41.10ID:trPfkB+8
>>239
VS2012開発者コマンドプロンプトから呼んでました。
改めてVS2012 x86 Native Tools コマンド プロンプトでビルドしてみたのですが、failed updatingと言われ、ビルドできませんでした。
0241デフォルトの名無しさん
垢版 |
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を実行した時に生成されたもののようです。
これはどうすればいいのでしょうか?
0242デフォルトの名無しさん
垢版 |
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側でやる手間が省けるのですが。
0243デフォルトの名無しさん
垢版 |
2015/03/03(火) 16:54:35.92ID:AGpwHs5d
boostのGILって標準ではBMPファイル読み込めないの?
ぐぐって出て来たnew&nbsp;ioってのはまだboost申請中?みたいだけど、これ使っておけばいいのかな?
0244デフォルトの名無しさん
垢版 |
2015/03/03(火) 21:11:19.83ID:xvH8TFuD
io_newでBMP読めたけど、色深度が読込むファイルと合ってないと例外発生するよ
0245デフォルトの名無しさん
垢版 |
2015/03/03(火) 22:56:19.91ID:AGpwHs5d
>>244
結構面倒くさい仕様だな…
勝手にフォーマット変更とかしてくれると便利だけどさすがに贅沢か…
0249デフォルトの名無しさん
垢版 |
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になる

うーん。何か足りないものありますか?
0251デフォルトの名無しさん
垢版 |
2015/05/01(金) 01:58:47.03ID:0XV7vRP4
boostの名前をつけるルールを
行列計算の時だけ破って
行列を大文字のAとかXにしてるの良くみるのですが
行列だけは例外的にルール破っていいことになってるのでしょうか
大文字はテンプレート変数ですよね?
0253デフォルトの名無しさん
垢版 |
2015/05/24(日) 00:54:33.50ID:8pBQ8Eyo
boostってちょっとはC++ができる人が作ってるライブラリですよね?

ビルド時になんであんなに警告がでるんですか?
もしかして素人さん?
0254デフォルトの名無しさん
垢版 |
2015/05/24(日) 12:38:51.82ID:MEnSJywT
いちいち警告気にしないのがプロ
0255デフォルトの名無しさん
垢版 |
2015/05/24(日) 16:29:54.52ID:YWYjkrfU
難しすぎて警告どころではないとか
0263デフォルトの名無しさん
垢版 |
2015/06/06(土) 12:23:05.22ID:DXSt7rl7
コンパイル時間はどうでもいいです。
コンパイルなんて休憩時間くらいしかやらないから・・・
0264デフォルトの名無しさん
垢版 |
2015/06/06(土) 12:31:03.72ID:htxI56Um
コンパイル時間のことでないとすると
どのライブラリが何と比べてどれくらい遅いのかを書かないと
0272デフォルトの名無しさん
垢版 |
2015/11/03(火) 21:27:24.75ID:hk+PiOLT
使ってますか
0275.パンティーガァル
垢版 |
2015/11/17(火) 21:19:23.78ID:s4bNHyHx
一時は随分持て囃されたようだが
コレもすっかりネタライブラリと化したなw
0276デフォルトの名無しさん
垢版 |
2015/11/19(木) 01:09:18.93ID:0U7CT6+W
ネタかどうかはともかく、PCのアプリ開発がビジネス的においしくないから
国内ではもっぱらプログラム廃人(w)の道具でしかない
0277デフォルトの名無しさん
垢版 |
2015/12/12(土) 07:43:19.75ID:D8DPAl+5
コンパイルがだるいのであまり使いたくないが、シリアライゼーションとファイルシステムは使いたいんだよな
0281デフォルトの名無しさん
垢版 |
2015/12/19(土) 12:40:41.91ID:P/E9W26M
Lapackもっと気持ちよく使えるようにして欲しいなあ
0282デフォルトの名無しさん
垢版 |
2016/01/18(月) 05:50:39.36ID:mFzGs0rQ
boost::geometryって2Dは充実してきてるけど、3Dへの拡張は現状どんな感じですか?
2010年くらいに将来やる予定って開発者が言ってた気がするけど
0283282
垢版 |
2016/01/19(火) 00:15:43.99ID:4raSQRby
フォーラム見たら3Dへの拡張は全体的にまだまだって感じですね
せっかくトレイト使ってジェネリックにやってるんだから早く実装して欲しい・・・
0285デフォルトの名無しさん
垢版 |
2016/04/05(火) 02:48:34.34ID:2X2ng6yq
age
0286デフォルトの名無しさん
垢版 |
2016/04/21(木) 22:40:40.88ID:0L9uK1O2
parallel BGLのドキュメントがくそ
0288デフォルトの名無しさん
垢版 |
2016/05/11(水) 17:04:40.20ID:CRgs0nLf
じゃもっといいものにしてください
0289デフォルトの名無しさん
垢版 |
2016/05/13(金) 00:38:47.56ID:gIaucaE3
read_iniでファイルを読み込んだ時
セクションが1つも設定されていない場合にエラーを出力したいのですが
セクションだけを取得する方法はありますか?
漠然とした質問ですみません。

boostのバージョンは1.54です
0291デフォルトの名無しさん
垢版 |
2016/05/13(金) 07:24:40.50ID:Vn8cSOwV
>>290
ID変わりました。>>289です。
ご回答ありがとうございます

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

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

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

見たのは1.61だけど、1.54も多分同じ
0297デフォルトの名無しさん
垢版 |
2016/06/09(木) 15:51:36.50ID:Cn/2kag2
>>294
ちゃんと次期標準としての役割は果たしてて、
次のC++ではfilesystemやoptionalが取り込まれるよ

バージョンアップがちょくちょくあるから、仕事ではちょっと使いづらいところもあるのかも
0298デフォルトの名無しさん
垢版 |
2016/06/09(木) 16:46:39.42ID:KqeHMSOJ
ですよね。thread関連はメンテだけになるかもしれませんが。
0300デフォルトの名無しさん
垢版 |
2016/06/09(木) 19:32:49.78ID:KqeHMSOJ
そうなんですか? 未だにSJISだと思ってましたw
0301デフォルトの名無しさん
垢版 |
2016/06/10(金) 06:42:33.29ID:u2soNk9a
SJISでしか動かないのは、batのバッチプログラムぐらい。
ファイルにSJISに含まれない文字を含むファイル名をつけて、batで呼び出せるかどうか試してみればいい。
0302デフォルトの名無しさん
垢版 |
2016/06/10(金) 09:39:39.13ID:XqAkh7YW
Win2000/XP に移行した時に Unicode ベースのシステムになった
でもレガシーなAPIを大事にお守りするせいでなかなか SJISが死なない
Windows10 と心中することになりそうだな
0305デフォルトの名無しさん
垢版 |
2016/06/10(金) 20:09:50.16ID:ZMnsYyke
BOMつければ済むC/C++コンパイラよりUTF-8を一切受け付けないリソースコンパイラの方を先になんとかしてくれ
0308デフォルトの名無しさん
垢版 |
2016/06/11(土) 16:54:13.93ID:ve5pyeaw
>>306-307
それ使ってもBOM入れるとエラーとかC/C++ソースと逆の状態で地獄の様相を呈してるぞ
おまけにリソースエディタで編集すると問答無用でCP932で上書きされるという
0311デフォルトの名無しさん
垢版 |
2016/06/30(木) 16:51:13.09ID:I86oszq6
beginとかendとか書くの面倒だな〜と思ってboost.range.algorithmsを調べてると
途中から|=とかadaptorsとか出てくるのですが
これは同じライブラリの話なのでしょうか?
もしくは全く別の二つのライブラリなのでしょうか?
0312デフォルトの名無しさん
垢版 |
2016/07/01(金) 18:57:17.98ID:dukX0h6O
>>311
どちらもBoostライブラリの一部
さらに、どちらもBoost.Rangeライブラリの一部

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

お互いに独立しているから、別々に使っても問題ない
0315デフォルトの名無しさん
垢版 |
2016/12/16(金) 20:08:11.49ID:qhGUM7zP
Eigenでもublasでも動く行列計算プログラムをテンプレート使えば出来ないかな
size1,size2とcolums,rowsが互換ないので挫折してるんだけど
0316デフォルトの名無しさん
垢版 |
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の対応が崩れちゃうよね

このケースではシリアライズのバージョンで対応できる範囲を逸脱しちゃうと思うんだけど。
どうするべきなんだろう。
0317デフォルトの名無しさん
垢版 |
2017/01/31(火) 23:36:50.81ID:ubkZ1wL6
そういうケースではBOOST_CLASS_EXPORT系のマクロで明示的にクラスとシリアライズ用IDを関連付けするんじゃないか
0321デフォルトの名無しさん
垢版 |
2017/02/25(土) 18:35:41.80ID:MSqa8twS
ごめん、質問が悪かった。
Boost Library の 全API をテストするテストコードはありますか?
0322デフォルトの名無しさん
垢版 |
2017/02/26(日) 01:02:24.11ID:0qHcAuFD
全APIのテストなのか中身は知らないがこのへん関連だろ
ttps://github.com/boostorg/regression
0324デフォルトの名無しさん
垢版 |
2017/04/08(土) 14:31:30.64ID:8o5hcs67
Allocatorだけ変えればcudaでも動く?
deviceという不思議な修飾子をtempleteに入れる方法がわからないが
0325デフォルトの名無しさん
垢版 |
2017/06/16(金) 17:49:46.14ID:I/6vJIh0
double ar[50];
ublas::matrix au(10,50,ar);
みたいなことをeigenだとmapで
できるけどublasはどうすればいいの?
0327デフォルトの名無しさん
垢版 |
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で取得するにはどのようにすればよいのでしょうか。
出力される演算子の順番は数があっていればよいです。
0328デフォルトの名無しさん
垢版 |
2017/10/24(火) 21:46:16.76ID:5YrUgwk0
>>327
どいう出力がほしいのかがよくわかんないんだけど、適当な入出力の例を出してもらえます?
0329デフォルトの名無しさん
垢版 |
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
でもいいです。

要は、パースしたときの任意の要素を取得したい、ということです。
0330329
垢版 |
2017/10/25(水) 12:26:35.26ID:RJdooZ2I
自己解決しました
0332デフォルトの名無しさん
垢版 |
2017/10/30(月) 23:02:21.71ID:TQ7eO1pJ
>>326
1.65で直ってるようだが
削除された boost/serialization/detail/get_data.hpp をincludeしてるやつが残ってただけの問題ぽい
0334デフォルトの名無しさん
垢版 |
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では行数表示はサポートしていないということではないかと思っているのですが、あってるでしょうか?
レスを投稿する


ニューススポーツなんでも実況