問題タブ [boost-uuid]
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.
database - 分散環境での一様分布乱数の生成
ゴシップの原理で動作するワイヤレスセンサーネットワークで「一意の乱数」を生成する必要があります。
要件は次のとおりです。
- 各ノードは、他のノードが生成したものを共有することなく、一意の乱数を生成する必要があります。
- 生成された乱数の分布は、互いに均一である必要があります。
- 生成された乱数の範囲が約 10 ~ 16 ビットであるか、それよりも小さい場合が望ましいでしょう。
制限事項は次のとおりです。
- 1 つのノードは、ネットワーク内の他のノードが生成している数を認識していません。
- C、C++ での実装。
また、乱数の生成に一意のシードを使用することもできます。シードは0-2^15の範囲の任意の数値です。
そのような数値を生成する方法がない場合、上記の要件のいくつかを満たす方法があれば助かります。
この結果を達成する方法を教えていただければ、本当に助かります。
c++ - boost::uuids::random_generator はスレッドセーフですか?
g++ -std=c++11
この関数を(GCC 4.7.2)でコンパイルすることを検討してください。
getID
複数のスレッドから呼び出しても安全ですか?
ここで言及されているように、最初の行のローカル静的オブジェクト定義は、C++11 標準に従ってスレッドセーフです。boost::uuids::random_generator::operator()
問題は、2 行目の同じオブジェクトに対する呼び出しgenerator
もスレッドセーフかどうかです。返された UUID は、単一のスレッドにあるという意味で一意になりますか?
c++ - Boost.uuid をクロスプラットフォーム コードに統合するにはどうすればよいですか?
C++クロスプラットフォームゲーム エンジンである cocos2d-x を使用してアプリケーションを作成しています。ゲームでは、入力なしで UUID を生成する必要があります。generateUuid
関数を呼び出して、その関数によって返された値を に代入したいだけですstd::string
。Boost.uuid が機能することはわかっています。正直なところ、必要な関数が何かわかりませんが、最大の問題は、Boost.uuid をコードに統合する方法がわからないことです。Boostを一度ビルドして使用しようとしましたが、その時点でライブラリ全体をインストールしました。私のニーズに合わせて最小限のコードを統合する手順は何ですか? また、いくつかのヘッダー ファイルが含まれているだけであることを願っています。それ以外の場合は、cocos2d-x がサポートするすべてのプラットフォームで動作するかどうかわかりません。
Boost.uuidのみの使用方法を学ぶために何をすべきか、何を読むべきか教えてください。
c++ - シリアルでboost::uuidをシリアル化する方法
この単純なクラスをシリアル化しようとしています:
しかし、私はこのエラーメッセージを受け取ります
uuid へのポイティング。これを有効にするブーストシリアル化の方法は、追加することです
しかし、これはそのままではシリアルには機能しません。穀物の文書によると
シリアル アーカイブは std::ostream または std::istream オブジェクトのいずれかで動作します。
だから私は定義されているが運がないヘッダーを追加しようとしました
c++ - ブーストを使用して std::string が有効な uuid であるかどうかを確認します
ブーストを使用して、特定の文字列が有効な UUID であるかどうかを確認したいと考えています。
これは、boost Web サイトのドキュメントを見て思いついたものです。
ただし、これは常に機能するとは限りません。
有効な UUID に対して短すぎる文字列で関数を呼び出すと、期待どおりに例外がスローされます。しかし、無効な UUID (例00000000-0000-0000-0000-00000000000K
) で関数を呼び出すと、例外はスローされません。
誰かがなぜこれが起こっているのかを明確にしてください。
また、ここに投稿されているように、boost::lexical_cast を使用して文字列を UUID として読み取ることも見てきました。その方法をとるべきか悩んでいます。アドバイスをいただければ幸いです。
c++ - boost uuid の POD プロパティを使用すると、dll/so 境界を越えて渡すことができますか?
dll 境界を越えた関数呼び出しからブースト uuid を返すことはできますか? 値または参照のどちらで返すかは重要ですか?