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/
0002デフォルトの名無しさん
垢版 |
2012/09/14(金) 17:35:28.29
■関連書籍■
Boost C++をチューンアップする最先端ライブラリ
http://www.amazon.co.jp/exec/obidos/ASIN/4894714191/

Boost C++ Libraryプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4798017043/

Beyond The C++ Standard Library
http://www.amazon.co.jp/exec/obidos/ASIN/0321133544/

C++ Template Metaprogramming
http://www.amazon.co.jp/exec/obidos/ASIN/0321227255/

The Boost Graph Library
http://www.amazon.co.jp/exec/obidos/ASIN/0201729148/

■関連スレ■
C++相談室 part98
http://toro.2ch.net/test/read.cgi/tech/1345823164/

C++11/C++1y 15
http://toro.2ch.net/test/read.cgi/tech/1333433900/
0010デフォルトの名無しさん
垢版 |
2012/09/21(金) 18:40:36.12
BoostはC++11の登場によって必要性が薄れたとは言え
時期バージョンのネタを提供する場として生き残るだろう
特にC++11の新機能を使った物が書かれると予想
0014デフォルトの名無しさん
垢版 |
2012/09/30(日) 11:17:14.35
以下のコードがgcc4.6.1でコンパイルエラーになるのですが、原因わかる方います?
当然ながらtestをmainの外に出せば問題ありません。
あと、VC8でも正常にコンパイルできています。

12 int main () {↲
13 class test {↲
14 public:↲
15 void func() {↲
16 printf("aaaa\n");↲
17 }↲
18 };↲
19 ↲
20 test t;↲
21 boost::thread th(&test::func, &t);↲
22 th.join();↲
23 return 0;↲
24 }↲
0023デフォルトの名無しさん
垢版 |
2012/10/11(木) 18:16:22.10
boost の iostreams を使って 簡単なフィルターを作って遊んでるんですが、
filtering_ostream の最後にfile_sinkにして、そのファイルのパーミッションを変更して、書き込み不可にしたときに
1)try catchでくくっても例外が発生しない。
2)その filtering_ostream のオブジェクトの fail() メソッドでチェックしてもtrueになってない。
ということで、エラー無視して動作してる状態になってます。
書き込み不可とかでエラーの検出ってどうやるんでしょうか?
0024デフォルトの名無しさん
垢版 |
2012/10/11(木) 19:07:37.56
>>23
自己レスですが、ソースとネットを確認したら file_sink の is_open() で確認できるみたい。
filtering_ostream の fail() では確認できないみたい。 そういう仕様なのか? 良くわからない。
0026デフォルトの名無しさん
垢版 |
2012/10/15(月) 23:50:37.46
Mac OS X 10.7.5でBoost 1.51のfilesystemを使おうとすると正常に動作しなかった。
file_size("file_name")でも実行時にエラーになる。

コンパイラーがXcode 4.5.1ではデフォでLLVM Compiler 4.1になっているが、これをGCC4.2にすると正常に動作。
他に同じ症状の人いる?
0029デフォルトの名無しさん
垢版 |
2012/11/03(土) 10:56:58.53
2ch 自体が活発じゃない既にオワコン
活発な気がするスレはあるけど
あっちは自演で成り立ってるだけだから
0031デフォルトの名無しさん
垢版 |
2012/11/07(水) 23:51:36.15
boost::iostreams::copyって、バイナリファイルは扱えないの?

boost::iostreams::filtering_istream is;
is.push(boost::iostreams::file_source("src",std::ios::binary));
boost::iostreams::filtering_ostream os;
os.push(boost::iostreams::file_sink("dst",std::ios::binary));
boost::iostreams::copy(is,os);

ってやったとき、srcの中身がテキストファイルならちゃんとdstに出力されるんだけど、
srcがバイナリファイルの場合は出力されてないんだ。
0033デフォルトの名無しさん
垢版 |
2012/11/13(火) 03:43:36.28
Mac初心者なんだが
iPhoneで動かすためにBoostをmacportsでインストールしたんだが
lipo -info で見るかぎり、x86_64 しか出来てない
どうすればboostできるの?
OSはSnowLeopard
0034デフォルトの名無しさん
垢版 |
2012/11/16(金) 02:07:47.98
>>31
自己解決した。
どうもfile_sourceとfile_sinkのファイルパスに全角文字が混ざるとダメみたい。
1.52.0で確認。
てかこんな制限知らなかったよ…
0037デフォルトの名無しさん
垢版 |
2012/11/17(土) 00:48:48.06
すいません、C++そのものがほとんど初心者なのですが、
どうしてもコンパイルエラーが取れないので質問させてください・・・

#include <boost/thread.hpp>
すると、duration.hppの

static BOOST_CHRONO_LIB_CONSTEXPR float lowest() BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW
{
return -(std::numeric_limits<float>::max) ();
}
で『Constexpr function never produces a constant expression』というエラーが発生します。

調べて、maxがうまいこといってないんだろうと推測したのですが、Macでの対処法がわかりません・・・
どうかよろしくお願いします。
0038デフォルトの名無しさん
垢版 |
2012/11/17(土) 13:13:04.09
boostのバージョンとコンパイラとそのバージョンくらい書けよ
constexprがらみみたいだからいっそ11でなく03でコンパイルしたら
0041デフォルトの名無しさん
垢版 |
2012/12/07(金) 22:08:02.78
zlib、gzipは操作できたんだけど
PKzipを操作する方法ない?
0043デフォルトの名無しさん
垢版 |
2012/12/14(金) 13:20:13.79
asioってiPhoneでも動く?
thread、signal、filesystem等の
OS依存部分に関して制限とか知ってたら教えてほしい。
0044デフォルトの名無しさん
垢版 |
2013/01/05(土) 21:00:15.65
MinGw上のg++ 4.6.2でBoost 1.51のSpiritのQiのヘッダのプリコンパイルができない
コンパイルに時間のかかるライブラリなのでプリコンパイルしたかったのに
0046デフォルトの名無しさん
垢版 |
2013/01/05(土) 22:16:12.70
言われてみればそうかも
でもMplのサンプルプログラムはヘッダをプリコンパイルしても動いてるみたいだしどうなんだろう
0047デフォルトの名無しさん
垢版 |
2013/01/05(土) 23:23:02.30
テキスト解釈する分は省けるから全くの無駄ってわけじゃないけど、
qi のコンパイル時間にはほとんど寄与しないだろうね。
parser 部分だけ分けてコンパイルできるようにすればどう?
0048デフォルトの名無しさん
垢版 |
2013/01/14(月) 00:30:43.75
何千回も同じヘッダをインクルードしてはインクルードガード処理しているようなら
1つにまとめた方が速いと思う。
0049デフォルトの名無しさん
垢版 |
2013/01/26(土) 19:58:06.47
Spiritのチュートリアルを参考にMyDefragのスクリプトファイルのパーサーを作ろうとしたが
コンパイル最中にBoost.Variant関連でヒープ領域が食いつくされてしまう
自分のコードの再帰関連で変なところがあるんだろうなw
0053デフォルトの名無しさん
垢版 |
2013/01/27(日) 19:24:42.92
VS2012のツールセットのv110_xpでビルドするにはどういうコマンドラインになるの?
v110とv110_xpの二種類あって、バージョンだけ指定したらv110になるよね
0054デフォルトの名無しさん
垢版 |
2013/01/30(水) 03:22:39.66
VC2010でBoost preprocessorのBOOST_PP_FORがうまく動かないんだよね。
2日くらいいろいろ調べてみたがよく判らなかった。

http://d.hatena.ne.jp/DigitalGhost/20091212/1260594965

ここのを参考に(かなりそのままに)使ってるんだが、これもうまく通らなくなってる。

自動展開で256を超えた場合に問題があって以前パッチで修正してるらしいんだが
まだ問題ありそうなんかなぁ。

ここの中の人に聞いた方が早いか?
0059デフォルトの名無しさん
垢版 |
2013/02/06(水) 19:41:49.75
Version 1.53.0
February 4th, 2013 18:29 GMT
0060デフォルトの名無しさん
垢版 |
2013/02/11(月) 21:59:58.91
Lock-Freeっていうのが新しく入ったみたいだけど、Interprocessと組み合わせた場合の制限(↓)ってもう少し詳しい説明はどこかにないのかな、今の段階の回避方法とか
ttp://www.boost.org/doc/libs/1_53_0/doc/html/lockfree/rationale.html#lockfree.rationale.interprocess_support
0062デフォルトの名無しさん
垢版 |
2013/02/25(月) 23:28:51.76
日本の企業はBoostライブラリ程度のものはすでに自前で作っているから
企業ではboostはほとんど使われないよな
お前ら趣味でプログラム?
0066デフォルトの名無しさん
垢版 |
2013/02/27(水) 02:00:58.80
boost::thread::idでスレッドIDを指定してスレッドがまだ存在しているかどうか
確認する方法ってありますか?
0077デフォルトの名無しさん
垢版 |
2013/03/02(土) 23:57:47.84
LANとトランスポート層を意識的に混同してるのか?
ファイアウォールもない会社なんか先行き知れてるぞ
0079デフォルトの名無しさん
垢版 |
2013/03/03(日) 01:30:10.91
2chに書き込みなんかしてる
>>73
とか嫌だわ。その嫌な奴が嫌と言ってる事って...?
(クレタ人は嘘つきだ...)
0083デフォルトの名無しさん
垢版 |
2013/03/04(月) 02:05:06.32
まぢ日本語は諦めてブックマークに
boost/G URL:google.com/webhp?hl=ja&q=site:boost.org+%22
weblio/G URL:google.com/webhp?hl=ja&q=site:weblio.jp+%22
でも入れといた方が楽ですぜ
0085デフォルトの名無しさん
垢版 |
2013/03/04(月) 09:24:54.56
iphoneから2chへのアクセスが禁止になると同時に
http://togetter.com/li/464104#c990983
あちこちに「2chは底辺」とか「2chは終わり」
>>70
みたいなのが増殖するというのは分かりやすすぎなのではないのですか?
もうちょっとこう工夫するとか出来ないのでしょうか?
0092デフォルトの名無しさん
垢版 |
2013/03/21(木) 07:48:20.63
boostは便利な昨日が多いけど、
マニュアルが読み辛いんだよな。
0093デフォルトの名無しさん
垢版 |
2013/03/25(月) 18:22:55.34
ファイルをインクルードして、
その中で自作のdefineで定義されたマクロが呼ばれた回数わかりませんかね?
009593
垢版 |
2013/03/29(金) 18:32:38.45
純粋にはできなかったけど、
マクロ呼びたしをリスト化して解決しました

all(
func(123)
func(456)
func(789)
)
のように

BOOST_PPではSEQ型って呼ばれてる型で渡せるように
0097デフォルトの名無しさん
垢版 |
2013/04/01(月) 12:50:35.39
人が多いうえにネイティブで英文の一次資料を楽に読める人だらけ、
質問と回答が基本で雑談・荒しが本筋に乗らない、レーティングとコメントで有益な情報を判別できる、
といったあたりはましだろうけどな
それでも回答のつかない質問・ずれた回答・間違った回答は人が多い分やっぱり多い
0103デフォルトの名無しさん
垢版 |
2013/04/16(火) 17:35:55.38
boost::iostreamsで、入力サイズと出力サイズが異なるinput_filterってどうやって作るの?
zlibのフィルタとかソース見たけどわからなかった…
0104デフォルトの名無しさん
垢版 |
2013/04/16(火) 21:19:11.74
フィルターに状態フラグを持たせて状態に応じて振る舞いを変える程度だと思うけど?
0106103
垢版 |
2013/04/26(金) 00:08:27.30
自己解決。
入力サイズと出力サイズが違うからおかしくなってたんじゃなくて、
入力データをバッファに入れるだけで次のやつに渡さない状態の時に0を返してたのがダメだった。
0返すとそこで終了しちゃう。

あと、zlibフィルタ、入力サイズと出力サイズ同じだった…
0107デフォルトの名無しさん
垢版 |
2013/04/30(火) 04:31:45.25
Boostのスレッド関連の機能使ってるライブラリと
OpenMP
一緒に使ったら
うまいこと排他制御して動いてしまったりするもの?
0116デフォルトの名無しさん
垢版 |
2013/06/14(金) 10:09:19.01
話すこと無いからな
質問が多そうなBoost初心者は専スレでなく一般のC++スレのほうで質問するだろうし
0119デフォルトの名無しさん
垢版 |
2013/07/04(木) NY:AN:NY.AN
boostの新しいの出たけど、winのコンパイル済みのものを配布なんてしているところなおのか?
自分でコンパイルなんてハードル高すぎ
0123デフォルトの名無しさん
垢版 |
2013/07/10(水) NY:AN:NY.AN
こないだ追加されたTypeErasureってどうなの?
試した人いる?
0124デフォルトの名無しさん
垢版 |
2013/07/10(水) NY:AN:NY.AN
ようするにany,variantの超強化型なんで強力だぞ
そのぶん複雑なことをやろうとすると下準備のややこしさと面倒くささが増すが
0127デフォルトの名無しさん
垢版 |
2013/08/14(水) NY:AN:NY.AN
C++11が出てからboostはニッチツールになって来たな
まあ面白いからこのまま続けてくれ
0135デフォルトの名無しさん
垢版 |
2013/09/11(水) 19:37:59.70
optional<T&>って気になってたんだけど、optional_ref<T>として
使えるようにするかもしれない、みたいな話は結局どうなったんだろ?
0136デフォルトの名無しさん
垢版 |
2013/09/14(土) 06:53:18.13
これをやるには先ずこれを済ませとかないと……でもこれはこれとこれとこれが済んでないと……
えーとつまり発端は……なんて連鎖を取り扱うライブラリありますか?
Makeみたいな
0138デフォルトの名無しさん
垢版 |
2013/09/14(土) 09:51:46.81
trac
0140136
垢版 |
2013/09/21(土) 03:59:04.31
なんでもないです忘れてください捜さないでください
0143デフォルトの名無しさん
垢版 |
2013/10/15(火) 03:55:17.76
管理者権限のPCでも
自分のホームディレクトリの下にLinuxのパッケージシステム作るのあったよね
apt-getとかemerge とかが動くやつ
あれだと自動で依存関係を解決してくれるね
0144デフォルトの名無しさん
垢版 |
2013/10/17(木) 00:44:09.84
>>143
>管理者権限のないPCでも
>自分のホームディレクトリの下にLinuxのパッケージシステム作る

これの名前忘れてしまって検索しようがないのだけど
誰か知りませんか?
0147デフォルトの名無しさん
垢版 |
2014/01/04(土) 22:34:52.14
使ってますかぁ
0148デフォルトの名無しさん
垢版 |
2014/01/16(木) 22:33:38.03
最近、githubに以降したんだけれど、
今のところ公式から落としてくるのには、
各リポジトリのすべてをクローンしなきゃいけないの?
ライブラリ単位でリポジトリが分散したせいでやりづらくなっているんだが
0151デフォルトの名無しさん
垢版 |
2014/01/17(金) 08:45:45.19
先生!
大変です。size_t が居なくなりました。
gcc を 4.5 -> 4.8 にアップグレードしたところ、size_t が脱走しました。
いや、boost のインストール時なのかもしらん。

オーソドックスな対策と
その原因に関する解説ページを教えていただけませんでしょうか?

現在必要なソースのヘッダごとに
#ifndef _SIZE_T
#define _SIZE_T
typedef __SIZE_TYPE__ size_t;
#endif

と対策していますが、どー考えても対策としてはタコです。

boost/pending/cstddef.hpp も怪しいが、単純なgccの問題かもとも思っています。


宜しくお願いいたします。
0152デフォルトの名無しさん
垢版 |
2014/01/17(金) 08:49:56.58
std::size_t
0153デフォルトの名無しさん
垢版 |
2014/01/17(金) 09:32:38.42
>>152
ありがとうございます。

どこに定義すればよいのでしょうか?
また、この原因はboostでしょうか?
0156片山博文MZ無能 ◆T6xkBnTXz7B0
垢版 |
2014/02/23(日) 00:53:10.90
大変便利であるからしてage。
0157片山博文MZ無能 ◆T6xkBnTXz7B0
垢版 |
2014/02/23(日) 01:10:11.61
【Boostのここがスゴい1】
ほとんどのライブラリがリンクなしで(#includeするだけで)使える。※但しインスコが必要
【Boostのここがスゴい2】
C++11以前の古いコンパイラでもboost::shared_ptrなどのスマートポインタが使える。
0158片山博文MZ無能 ◆T6xkBnTXz7B0
垢版 |
2014/02/23(日) 01:16:42.42
【Boostのここがスゴい3】
Boost.multiprecisionで手軽に多倍長演算(非常に桁数の大きい演算)ができる。
【Boostのここがスゴい4】
古いコンパイラでもマルチプラットフォームでマルチスレッド対応が可能。
0160デフォルトの名無しさん
垢版 |
2014/02/23(日) 02:04:51.86
【Boostのここがヒドい1】
バイナリがでかくなる
【Boostのここがヒドい2】
コンパイルエラーがいみふ
0161デフォルトの名無しさん
垢版 |
2014/02/23(日) 02:33:44.40
awkは、2^200を計算できないのですが、
bcコマンドは出来ます

Pythonは、2の1万乗、つまり3千桁も計算できる
Rubyは、2の千乗、つまり300桁も計算できる
0167デフォルトの名無しさん
垢版 |
2014/02/23(日) 15:22:51.97
>>165
色んなオプションでコンパイルできるから…全パターンのコンパイルしたら結構でかいんじゃね?
流石に試したことはないけど…
0168デフォルトの名無しさん
垢版 |
2014/02/23(日) 15:31:39.81
>>163
自分で使う気が無くても
このライブラリをつかうにはboostを使ってね♪ってのがあるだろ
boost感染と呼ぶべきか
0173デフォルトの名無しさん
垢版 |
2014/02/25(火) 02:05:03.94
>>163
車輪の再発明を避けることを徹底すると必要なライブラリがどんどん膨らんでいくよ
便利そうだからと安易にライブラリに追加してると、便利そうだからと安易に利用することになって
依存関係が発生してしまう
0174デフォルトの名無しさん
垢版 |
2014/02/25(火) 02:27:52.42
そんなことは必要なライブラリが膨らんでから考える
いちいちzlibなりboost::serializeなり自作してられっか
0175デフォルトの名無しさん
垢版 |
2014/02/25(火) 07:43:30.82
>>174
>>173はboost自体の話。
いちいち必要なライブラリだけビルドするのは面倒だし、依存関係で枝葉のライブラリしか
削れないなら全部ビルドした方がましって感じ。

exeだとDLL版でもいいんだけど、プラグインdllだとexeと同じパスに置かれないことも多いし
32/64bitの区別の問題とかもあって暗黙的なDLLロードに期待できないんだよね。
だからboostのバイナリをDLして使うより手間がかかるからboost自体を巨大化されるのは困る。
0178デフォルトの名無しさん
垢版 |
2014/05/06(火) 15:21:54.64ID:DynE4XBA
 
0179デフォルトの名無しさん
垢版 |
2014/06/08(日) 10:51:05.92ID:j31/DBL2
数年ぶりに戻って来たんだけど、今はLets Boostみたいな日本語で解説してるサイトは無いの?
付属のdocだと情報量が多すぎて疲れる・・・
0185デフォルトの名無しさん
垢版 |
2014/06/20(金) 01:10:34.79ID:Lg1rjNq/
boost使い始めたのはgregorianのためだったっけな一番最初は
その後scoped_arrayとかも使い始めた
0186デフォルトの名無しさん
垢版 |
2014/06/22(日) 22:12:29.06ID:16+BG254
怒らずにマジレスしてほしいんだけど progress_display に代わるものってあるの?
0188デフォルトの名無しさん
垢版 |
2014/08/08(金) 10:09:29.41ID:bvhG3beM
Version 1.56.0
August 7th, 2014 16:08 GMT
0189デフォルトの名無しさん
垢版 |
2014/08/11(月) 14:29:54.99ID:jlzj25iu
Boost初心者です。
http://qiita.com/softgate/items/75f123f01ccdee6d36d0
を参考に
 boost 1_56_0
を以下のようにビルドしたのですが
 b2 toolset=msvc threading=multi variant=debug,release link=static runtime-link=static address-model=32 --stagedir=stage/x86 -j 8
 b2 toolset=msvc threading=multi variant=debug,release link=shared runtime-link=shared address-model=32 --stagedir=stage/x86 -j 8
 b2 toolset=msvc threading=multi variant=debug,release link=static runtime-link=static address-model=64 --stagedir=stage/x64 -j 8
 b2 toolset=msvc threading=multi variant=debug,release link=shared runtime-link=shared address-model=64 --stagedir=stage/x64 -j 8

このBoostを使ったVS2013プロジェクトで

 error LNK1104: ファイル 'libboost_thread-vc120-mt-1_56.lib' を開くことができません。

が出て解消できません。thread関係は、以下のファイルがあります。

 stage\x86\lib\libboost_thread-vc120-mt-s-1_56.lib
 stage\x86\lib\libboost_thread-vc120-mt-sgd-1_56.lib

 stage\x64\lib\libboost_thread-vc120-mt-s-1_56.lib
 stage\x64\lib\libboost_thread-vc120-mt-sgd-1_56.lib

エラーメッセージで指摘されているファイル
 libboost_thread-vc120-mt-1_56.lib  
もビルドするには、どうすればよいでしょうか?
0190デフォルトの名無しさん
垢版 |
2014/08/12(火) 01:45:55.26ID:O5xDEFJj
あてずっぽだけどmt-sってlink=staticなb2の生成物だと思うから
link=sharedのときの生成物をよく探せばいいんでないの
0192デフォルトの名無しさん
垢版 |
2014/08/12(火) 12:56:31.79ID:oLoknUBV
>>190,191
レス有難うございました。
その通りでした。
link=static runtime-link=static
link=shared runtime-link=shared
以外に、
link=static runtime-link=shared
link=shared runtime-link=static
もビルドしたら解決しました。
0194デフォルトの名無しさん
垢版 |
2014/08/16(土) 00:19:18.57ID:datmhcQU
それじゃだめなんよ
libcとdll混在でえらいことなる
コンパイラオプションでstatic版、dll版どっちリンクするか決定してるから
0195デフォルトの名無しさん
垢版 |
2014/08/22(金) 20:53:28.55ID:GZiwALqE
ええっと、WindowsのDLLの仕様上、
link=sharedとruntime-link=staticの組み合わせは基本マズイはず。
.exe側と .dllが 別々に __FILE__ 構造体を保持したりして、
それを狙っている場合はいいが知らずにstatic変数のポインタを
やり取りするとクラッシュすると聞いた。
その逆も同様だと思った。
0196デフォルトの名無しさん
垢版 |
2014/08/23(土) 02:33:52.06ID:830xsgTR
テンプレの関連書籍買おうと思うんだけど
内容はどんな感じなの?
Boostのホームページに書いてる以上のこと書いてる?
あとテンプレ貼られてから2年経つけど2年の間に新しく関連書籍出た?
0197デフォルトの名無しさん
垢版 |
2014/08/23(土) 04:37:08.56ID:ZWPa2xFI
>>195
一番まずいのはHeap破壊
libcのmallocで確保したポインタをmsvcrt.dllのfree呼び出す、あるいはその逆するとHeapがおかしくなる
0198デフォルトの名無しさん
垢版 |
2014/08/24(日) 01:03:29.49ID:z6SsqQq7
>>195,197
憶測で語るのはそこまで。不具合が実在するなら公式tracにバグ報告して貢献したほうがいい。
0200デフォルトの名無しさん
垢版 |
2014/08/24(日) 01:57:11.06ID:z6SsqQq7
>>199
確かに >>197 のHeap破壊の件はboostと関係ないね。失礼。
exe側の標準ライブラリリンク方法を変えて対処すべきことを、側聞だけで基本マズいとか断言する >>195 みたいなの困るわ。
0201デフォルトの名無しさん
垢版 |
2014/08/24(日) 17:02:34.37ID:zFKb4A2a
いや、exe側のリンク方法を変えてもポインタを渡したらアウト、対処できない。
exeの作成者側が仕様を理解していれば、それで動作させることも可能だが、
一般的にそんな用途はない。
ライブラリのバージョンの特殊なテストとか普通にはない状況。
0203デフォルトの名無しさん
垢版 |
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つのパターンだけ用意すれば良いと思われる
0204デフォルトの名無しさん
垢版 |
2014/08/25(月) 18:17:09.07ID:K+Y1EV40
(´-`).oO (なんでboostとC標準のリンクオプションがわざわざ別々になってると思う?)
0205デフォルトの名無しさん
垢版 |
2014/08/25(月) 18:52:52.89ID:34Z9Wbr7
正直link=とruntime-link=のそれぞれの意味がわかってないけど、
とりあえずlink=staticのしか使ったことない。
runtime-linkのほうはMSVCのコード生成設定に合わせるけど。
0207デフォルトの名無しさん
垢版 |
2014/08/25(月) 20:13:31.67ID:S+r49QAC
Express版の2010だとEula.txtが付属してないので、
/MDだと著作権的にグレーになってしまう。
/MTでコンパイルしないと公開できないw
0208デフォルトの名無しさん
垢版 |
2014/08/25(月) 20:33:49.53ID:34Z9Wbr7
ていうかMSVCで普通にプロジェクト作って普通にインクルード&ビルドしたら
link=staticで作成されたファイル名のほうしか読みにいかなくない?
マルチスレッドDLLでもマルチスレッドでもdebugでもreleaseでも。
0210デフォルトの名無しさん
垢版 |
2014/08/25(月) 21:07:00.41ID:S+r49QAC
BOOST_ALL_DYN_LINKを定義しないと, libboost_の方にリンクする。
定義するとboost_の方へリンクしてDLLを使用するようになる。
0211208
垢版 |
2014/08/26(火) 00:28:28.83ID:00zrwMl9
>>210
ありがとうございます。
BOOST_ALL_DYN_LINKなるキーワードがあったのですね。
0212デフォルトの名無しさん
垢版 |
2014/08/27(水) 03:36:26.18ID:6l9mfgq+
#pragma comment(linker, "/NODEFAULTLIB:libboost_〜.lib")
ってやって必要なcppだけ本体と一緒にコンパイルリンクするのが一番楽
0213デフォルトの名無しさん
垢版 |
2014/10/06(月) 22:24:43.15ID:tIlHofLk
ネットワーク関係はpocoと比べてどうなの?
0214デフォルトの名無しさん
垢版 |
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に使用できる型の制約条件や、類似のコンパイルエラーとその対処方法をご存じであれば
教えていただきたく思います。
0215デフォルトの名無しさん
垢版 |
2014/10/26(日) 15:46:28.32ID:r2skli7n
VS2013のC++でBoost1.56を使っているのですが、どんなプロジェクトを作ってもビルドすると
  コンパイルされたクラスの テンプレート のインスタンス化
'std::streamsize boost::iostreams::detail::copy_operation<Source,Sink>::operator ()(void)'
 の参照を確認してください
みたいか警告がいつも数十行出るんですが、「参照の確認」とは何をどうすれば良いのでしょうか?
0216デフォルトの名無しさん
垢版 |
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
正規表現での後方参照みたいに一つのルール内でサブルールにマッチした結果によって
挙動を変えるルールを記述するときに使うものじゃないか?
0217デフォルトの名無しさん
垢版 |
2014/10/28(火) 00:29:16.37ID:uWcH6Wmu
>>216
レスありがとうございます。
なるほど、想定されている使い方はこういったケースなのでしょうか。
だとしたらそもそも今回の私がやろうとしていたことには不適切だったかもしれませんね。
(パースするごとに、inherited attributeに設定したインスタンスに情報を反映させたかった)
余計なことは考えず、普通に対応するようにします。

コードについてですが、この例を参考にしてすこし試したところ
要するにboost::phoenixなオブジェクトであれば渡せるようで
grammarのoperator()に渡す引数をphoenix::val(...)やref(...)で包めば
コンパイルが通ることがわかりました。まだ動作確認はしていませんが・・・
ともあれ、ありがとうございました。
0218デフォルトの名無しさん
垢版 |
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 のほうで条件を満たすことができるのでエラーにはならない
ということだと思う
0219デフォルトの名無しさん
垢版 |
2014/10/30(木) 11:39:19.54ID:ImhG7AIb
>>218
詳しく調べていただきありがとうございます。
「immediate value」判定を行っている個所を確認して、std::stringが通った理由も納得できました。
というか、かなり制限がきつかったんですね・・・そりゃ通らないわけだ。
0221デフォルトの名無しさん
垢版 |
2014/11/07(金) 00:16:46.51ID:HXLLL8gC
当然っちゃ当然なんだけど
boost::functionとstd::functionって実装違うんだね・・・
boost::lambdaで作ったファンクタが、前者だと格納できて
後者だと格納できずにコンパイルエラーになるケースに遭遇したよ
0222デフォルトの名無しさん
垢版 |
2014/11/11(火) 09:50:08.64ID:Q0YP3r9c
その違いはコンパイラの違いや、そのC++STLが対応するバージョンにもよるな
VC++2013のstd::unordered_mapのキーに素直にtuple指定できないからboost::unordered_map使ったりしてる
いずれ指定できるようになったらstdに戻す
0227デフォルトの名無しさん
垢版 |
2015/01/06(火) 01:03:54.45ID:oPiR2ldc
あ、特に問題はないのか。
何となくだけど、「生ポインタ入れたらヤバそう」って思い込んでたよ…
0230デフォルトの名無しさん
垢版 |
2015/01/07(水) 09:03:30.78ID:ZvIwm56v
生ポの開放時にキーも削除又は解放後は使用されないのなら特に問題無さそう
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では行数表示はサポートしていないということではないかと思っているのですが、あってるでしょうか?
0336334
垢版 |
2018/02/15(木) 00:11:58.35ID:tCvyFr2o
>335
ありがとうございます。Platforms列を見れば良いことに気づきました。
自分で書こうと思います。
0339デフォルトの名無しさん
垢版 |
2018/03/15(木) 20:09:58.62ID:yS5ipMZT
Boostを使って
圧縮ファイルの中の特定のファイルを解凍するというのはできるのでしょうか?
0340デフォルトの名無しさん
垢版 |
2018/03/30(金) 03:50:07.93ID:OeBMTFJE
socket.cancel()、非同期な関数にしか効かないようなソースコメントやら、web情報見かけるんだけど、socket.recieve()に効くのはなんでやろ?
読み間違えてて使えるようになったとかなんかな。
なお、win10 boost 1.66で試しました。
土日でlinux試してみるつもりだけど処理系依存なのかな。
0341デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:19:45.93ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

80D65
0342デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:26:02.35ID:RfoszcD2
CM0
0345デフォルトの名無しさん
垢版 |
2020/07/22(水) 20:58:36.13ID:u8zoOFyR
Visual Stadio2019でboost Python使いたいけど
コンパイル済みバイナリーが古いのしかないみたい
新しいのどこか知らないですか?
0346デフォルトの名無しさん
垢版 |
2020/07/23(木) 00:32:11.54ID:4rdlbzE6
コンパイルしたらいいやん
0347デフォルトの名無しさん
垢版 |
2020/07/23(木) 19:42:06.76ID:RkdUmux0
何処かのconfig.hに古いVisual Studioのバージョン番号が直書きしてあるらしく、古いvisual studioのバージョン番号がついたdllが生成される
0348デフォルトの名無しさん
垢版 |
2020/07/23(木) 21:01:15.25ID:0ZuGEqzO
pybind11使った方がいいんじゃないの?
0350デフォルトの名無しさん
垢版 |
2020/07/24(金) 10:34:44.41ID:qMgm686n
>>347
config.hじゃなくて環境変数だったり
あるいは`〜`の実行結果だったり
0351デフォルトの名無しさん
垢版 |
2020/07/24(金) 15:37:03.90ID:My3QjSVo
VCPKGのBoostは常に新しい。
良い事とは限らないが。
0352デフォルトの名無しさん
垢版 |
2020/07/27(月) 15:54:19.58ID:ux/3EI2L
boost-python あきらめて
pybind11にしてみたけど
python3.7しかインストールしてないのに
python3.8のinitがないというエラーで動かない
0353デフォルトの名無しさん
垢版 |
2020/07/27(月) 16:04:49.04ID:ux/3EI2L
windows糞すぎる
下請けが上の勝手な環境に
すごい頑張って合わせないと
C++とpythonの連携
動かすだけで1週間ぐらい消える

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

下請けが頑張って合わせるの拒否すればWindows使う人減るのに
0354デフォルトの名無しさん
垢版 |
2020/07/27(月) 16:13:58.01ID:vNtx9fDh
おま環
0355デフォルトの名無しさん
垢版 |
2020/07/27(月) 17:58:36.21ID:NsfDBFYW
いろんなアプリが独自にpythonをインストールする。
どのパスのpythonが呼ばれているか調べてみては。
0356デフォルトの名無しさん
垢版 |
2020/08/11(火) 19:29:17.92ID:3wTAQydO
組み込みはLuaにすればそういう難儀なハナシは一切ないけどね
スタティックリンクしてビルトインしても300KB切るぐらいだし
0357デフォルトの名無しさん
垢版 |
2020/10/22(木) 20:02:39.21ID:Ztx90rC8
x86版とx64版でライブラリファイルを作成したいのだけど、msvcのバージョンってどうやって調べられる?
boostの導入に関する解説を見ても、それについて触れずにさらっと流されてるから再現出来なくて困る
0362デフォルトの名無しさん
垢版 |
2020/10/24(土) 20:58:15.91ID:k6HOXbpL
>>361
無事にコマンドプロンプトが荒ぶってます。ありがとう

>>360
なぜか19.2xxxxxの数字が出てきました
Native Tools Command Promptとは別のコマンドプロンプトだったのかな
0363デフォルトの名無しさん
垢版 |
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って打てば割と前の方に出てくる。
0366デフォルトの名無しさん
垢版 |
2020/11/02(月) 01:16:40.50ID:cIYvgR5B
>>365
カテゴリ自体は英語も日本語もない。
0367デフォルトの名無しさん
垢版 |
2020/11/06(金) 07:12:14.22ID:FaSUQUNx
progress_displayはC++20にも入らないみたいですね。
0368デフォルトの名無しさん
垢版 |
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++を使ってビルドするにはどうすればいいですかね?
0369デフォルトの名無しさん
垢版 |
2020/12/29(火) 12:41:42.93ID:pOj5Hj0F
>>368
>boostがライブラリにstdlib++を使っているからこうなるらしく
何を見てこう言ってるのか示してくれればそれを確かめるぐらいの人は出てきやすいかもね。
0371デフォルトの名無しさん
垢版 |
2020/12/31(木) 01:10:27.91ID:u9R6p7NQ
1.74まではb2を起動する前に環境変数をいじれば色々と細工ができたけど
1.75のb2からそれができなくなった。
0372デフォルトの名無しさん
垢版 |
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バイトなのが原因のようだ
0373デフォルトの名無しさん
垢版 |
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のように秒までの精度で出力したいのですが
どうすればできるでしょうか?
0374デフォルトの名無しさん
垢版 |
2021/09/25(土) 18:49:53.75ID:l9LRkEk/
半年前のレスは俺のスレではないかww
ここは誰もいないインターネッツですか?
0376373
垢版 |
2021/09/25(土) 19:14:58.56ID:l9LRkEk/
とりあえずstring::substrを使うことにしました
cout << "t0: " << to_iso_string (t0).substr (0, 15) << '\n';
C++ユーザ減ったなぁ....
0377デフォルトの名無しさん
垢版 |
2021/09/25(土) 20:07:37.17ID:MTGu+1Tf
std::chronoだと、精度違いを変換できたと思うんやけど、Boostはムリなん?
出力時の精度を指定するんじゃなくて、必要な精度のオブジェクトに変換したら?
0378373
垢版 |
2021/09/25(土) 22:12:31.29ID:l9LRkEk/
>>377
レス有難うございます
>必要な精度のオブジェクトに変換したら?
これを探しています

chronoはstdに入ったんですね
0379デフォルトの名無しさん
垢版 |
2021/09/25(土) 23:43:26.58ID:wzNzdXVE
このスレ立ったの2012年か
0380373
垢版 |
2021/09/25(土) 23:49:49.54ID:l9LRkEk/
この書き込みの少なさは今のC++ユーザの数を反映している?
0382デフォルトの名無しさん
垢版 |
2021/09/26(日) 23:48:48.09ID:PFNrbKFP
現代C++に必ずしもBoostが必要ではないのもあるかもしれんが
書き込み少なすぎる気はするね
0383デフォルトの名無しさん
垢版 |
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
0384デフォルトの名無しさん
垢版 |
2021/09/28(火) 16:18:33.79ID:nD0g4rLv
boostワクチン
0385デフォルトの名無しさん
垢版 |
2024/04/16(火) 15:07:36.68ID:ZKGNEpnp
boost1.85が出たけどVS2019でbcp.exeのコンパイルに失敗
1.84までは全く問題なかったので不具合だと思う。1.86を待つか。
レスを投稿する


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