問題タブ [boost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
394 参照

macos - Macポートでブースト1.36が利用できるようになるのはいつですか?

この情報を見つけるにはどうすればよいですか?


つまり、

次のようなコマンドでブースト1.35をインストールできます

ポート経由でブースト1.36を取得するためだけに、私はこのようなことをしますか?

それが私の質問をクリアすることを願っています

0 投票する
6 に答える
3051 参照

c++ - Boost を追加すると、デバッグ ビルドが「非 D」MSVC ランタイム DLL に依存するようになります

何とか回避できるかもしれない厄介な問題がありますが、一方で、このようなものは本当にここにとどまっているように見えるので、むしろそれを乗り越えて何が起こっているのかを正確に理解したいと思っています.

ストーリーは次のとおりです。私は正常に動作する単純な OpenGL アプリを持っています。コンパイル、リンク、または実行に大きな問題はありません。ここで、より集中的な計算の一部をワーカー スレッドに移動して、GUI の応答性をさらに高めることを試みることにしました (もちろん、Boost.Thread を使用します)。

つまり、.cpp ファイルの先頭に次のフラグメントを追加すると:

、その後、デバッグ ビルドを起動しようとすると、「MSVCP90.dll が見つからなかったため、このアプリケーションは開始できませんでした」というメッセージが表示され始めます。(リリースモードは正常に動作します。)

Dependency Walker を使用して実行可能ファイルを見ると、この DLL も見つかりません (これは私が予想していることだと思います)。次の関数を呼び出せるようにするために探していることがわかります。

次に、 のすべてのインスタンスを変換し、代わりにマクロを使用しようとしminましmaxたが、役に立たなかったため、それらへのすべての参照を見つけることができなかった可能性があります。(ソースコードを入手できない外部ライブラリをいくつか使用しています。しかし、これができたとしても、それが正しい方法だとは思いません。)

それで、私の質問は、おそらく次のとおりです。

  1. デバッグ ビルドで作業しているにもかかわらず、非デバッグ DLL を探すのはなぜですか?
  2. 問題を解決する正しい方法は何ですか? それとも、手早く汚れたものですか?

Visual Studio 2008 のごく普通のインストールでこれを最初に使用しました。次に、Feature Pack と SP1 をインストールしようとしましたが、どちらも役に立ちませんでした。もちろんリビルドも何度か試みました。

Boost (v1.36.0) 用にビルド済みのバイナリを使用しています。このプロジェクトで Boost を使用するのはこれが初めてではありませんが、別のソースに基づくパーツを使用するのは初めてかもしれません。

インクリメンタル リンクを無効にしても役に立ちません。プログラムが OpenGL であるという事実も関連していないようです — 同じ 3 行のコードを単純なコンソール プログラムに追加すると、同様の問題が発生しました (ただし、MSVCR90.dll と について不平を言ってい_mkdirました。後者のboost::create_directory場合、問題は解決しました!!)。この 3 行を削除または追加するだけで、プログラムが正常に実行されるか、まったく実行されなくなります。

私は Side-by-Side を理解しているとは言えません (これが関連しているかどうかさえわかりませんが、今のところはそれが私が想定していることです)。アプリをビルド、デバッグ、デプロイ...


編集 1:とにかく問題を再現する簡素化された例を作成しようとしているときに、問題がSpread Toolkitに関係していることを発見しました。(ただし、Boost のリンクを開始する前は、これはありませんでした。)

問題を再現できる最小限のプログラムを思いつきました。これは、A.cpp と B.cpp の 2 つのコンパイル ユニットで構成されます。

A.cpp:

B.cpp:

いくつかの観察:

  1. SP_joinA.cppの行をコメントアウトすると、問題はなくなります。
  2. B.cpp の 1 行をコメント アウトすると、問題は解決します。
  3. B.cpp の 1 行を A.cpp の最初または最後に移動またはコピーすると、問題は解決します。

(シナリオ 2 と 3 では、 を呼び出すとプログラムSP_joinがクラッシュしますが、これは単にメールボックスが有効でないためです...これは当面の問題とは関係ありません。)

さらに、Spread のコア ライブラリがリンクされています。私のシステムにはそのライブラリのデバッグ ビルドがないため、これは私の質問 #1 に対する答えの一部であることは間違いありません。

現在、別の環境で問題を再現できるようにする方法を考え出そうとしています。(実際に敷地外で再現できたらビックリしますが…)


編集 2:わかりました。これで、WinXP32 + VS2008 + Boost 1.36.0 のほぼバニラのインストールで問題を再現できるパッケージができました (まだBoostPro Computing からビルド済みのバイナリです)。

犯人は確かにSpread libであり、私のビルドにはMSVC 6用のかなり古いバージョンのSTLPortが必要です! それにもかかわらず、私はまだ症状が比較的面白いと感じています. また、上記のシナリオ 1 ~ 3 を含め、実際に問題を再現できるかどうかをお知らせいただければ幸いです。パッケージは非常に小さく、必要なすべての部品が含まれている必要があります。

結局のところ、この例では Boost Filesystem ライブラリを使用しているため、Boost.Thread とは特に関係がありませんでした。さらに、以前のように P ではなく、MSVCR90.dll について不平を言うようになりました。

0 投票する
5 に答える
13061 参照

c++ - 関数テンプレート パラメーターの C++ テンプレート インスタンス化

テンプレートのインスタンス化 [*] を使用すると、次の問題が発生します。

ファイルfoo.h

ファイルfoo.cc

ファイルcaller.cc

これは正常にコンパイルされますが、リンカーは未定義のシンボルについて不平を言います:

void Foo::func<boost::_bi::bind_t...>

関数 をインスタンス化するにはどうすればよいFoo::funcですか? 引数として関数を取るので、少し混乱しています。通常の非関数型に慣れているので、インスタンス化関数をfoo.ccに追加しようとしました。

明らかに、これは機能しません。誰かが私を正しい方向に向けることができれば幸いです。

ありがとう!

[*] はい、parashift FAQ lite を読みました。

0 投票する
13 に答える
35331 参照

c++ - 別の std::vector の値で std::vector をソートするにはどうすればよいですか?

いくつかstd::vectorありますが、すべて同じ長さです。これらのベクトルの 1 つを並べ替え、他のすべてのベクトルに同じ変換を適用したいと考えています。これを行うきちんとした方法はありますか?(できればSTLまたはBoostを使用してください)?一部のベクトルはints を保持し、一部のベクトルは s を保持しますstd::string

擬似コード:

0 投票する
2 に答える
7181 参照

c++ - gcc-arm ツールチェーン用の Boost C++ ライブラリ

timesys arm-gcc ツールチェーンで 1.35.0 と 1.36.0 を静的 (link-static) と動的 (.so、デフォルト オプション) の両方で問題なくビルドできます。

ただし、単純なサンプル ファイルシステム アプリをリンクしようとすると、次のようになります。

次のリンカ エラーが発生します。

Boost を gcc-arm ツールチェーン用にビルドする方法を知っている人はいますか?

0 投票する
9 に答える
59875 参照

c++ - Boost:asio の最適なドキュメント?

ブースト Web サイトで入手できるドキュメントは... 限られています。

私が読んだ限りでは、一般的なコンセンサスは、boost::asio ライブラリに関する優れたドキュメントを見つけるのは難しいということです。

これは本当にそうですか?もしそうなら、なぜですか?

ノート:

  • 私はすでに(ブーストではない)Asio Web サイトを見つけました- ドキュメントはブースト Web サイトのものと同じように見えます。
  • Boost::asio が新しいことは知っています。言い訳ではなく解決策を探しています。

編集:

  • Boost:asio の作者 (Christopher Kohlhoff) によって、TR2 の標準ライブラリにネットワーク ライブラリを追加する提案があります。boost:asio のドキュメントではありませんが、TR2 提案のベースとして使用しています。著者はこの文書により多くの努力を払ったので、リファレンスとしてではなくても、少なくとも概要としては多少役立つことがわかりました。
0 投票する
3 に答える
15020 参照

c++ - C++ の YAML シリアル化ライブラリ?

YAML は、構成ファイルと、人間が読める形式の永続オブジェクトをデータ バインディングするための優れた形式のようです...

YAML を処理する C++ ライブラリはありますか? Boost::Serialization には YAML オプションの計画がありますか?

編集: オブジェクト指向ライブラリを好むでしょう。

0 投票する
6 に答える
21938 参照

c++ - どのように異種のブースト::マップを作成しますか?

同種のキー タイプと異種のデータ タイプを持つマップが必要です。

(疑似コード)のようなことができるようにしたい:

基本クラスへのポインターをデータ型として持つことができましたが、そうではありませんでした。

これまでブーストを使用したことはありませんが、フュージョン ライブラリを見てきましたが、何をする必要があるのか​​ わかりません。

ご協力いただきありがとうございます。

0 投票する
3 に答える
4285 参照

c++ - VC ++ 6と互換性のあるBoostの最新バージョンは何ですか?

Microsoft Visual C ++ 6と互換性のあるBoostライブラリの最新バージョンは何ですか?また、直接ダウンロードするためのリンクを提供できますか?

http://www.boost.orgの[ダウンロード]リンクには、バージョン1.36.0のダウンロードのみが記載されており、そのバージョンのドキュメントには、テストされたMicrosoftコンパイラの最低バージョンとしてVisual C++7.1が記載されています。古いバージョンのダウンロードを削除しますか?

0 投票する
3 に答える
8730 参照

c++ - VS 2008 にブーストをインストールするには?

Boost をほぼ完全にインストールしましたが、 Tools->options->projects->VC++ Directoriesで Boost へのパスを設定する方法に問題があります。

ファイルとライブラリを含めるパスを書きました (私のフォルダーには 2 つのサブフォルダーが含まれていますlib)includeが、Boost を #include boost/regex.hppで使用しようとすると、次のリンク エラーが発生しました。

Boost を Visual Studio 2008 に正しくインストールする方法を教えてください。