問題タブ [loki]
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.
c++ - Lokiシーケンスはいくつの要素を持つことができますか?
ブーストMPLリストまたはベクトルの最大長は半定義可能ですが、約30要素を超えると、コンパイラーは私を嫌います。Lokiシーケンスにはいくつの要素を含めることができ、ユーザーが定義できますか?
c++ - タイプリストからのタイプの消去 C++ メタプログラミング
C ++メタプログラミングでタイプリストからタイプを消去することの意味は何ですか. 誰でも簡単な例を提案できますか。
この場合、タイプリストから B を削除する必要がある場合。それを取り除くことは可能ですか?タイプBを削除する方法.
c++ - ロキ:Typelist.h
Typelist の例を試しており、次のリンクにある例も読んでいます。 タイプリストの訪問者パターンの例
しかし、その例では、loki が提供する Typelist.h を使用していません。私の質問は、そのヘッダー ファイルを使用してタイプリストを作成する方法、またはゼロから作成する必要があることです。
c++ - Alexandrescu が std::uncaught_exception() を使用して ScopeGuard11 に SCOPE_FAIL を実装できないのはなぜですか?
多くの人は間違いなく、Alexandrescus 氏の ScopeGuard テンプレート (現在は Loki の一部) と、ここで紹介されている新しいバージョンの ScopeGuard11 に精通しています: http://channel9.msdn.com/Shows/Going+Deep/C-and-Beyond-2012- Andrei-Alexandrescu-Systematic-Error-Handling-in-C
ソースはこちら: https://gist.github.com/KindDragon/4650442
2012 年以降の c++ での講演で、彼は、例外が原因でスコープが終了したかどうかを正しく検出する方法を見つけることができなかったと述べました。したがって、彼は、例外のためにスコープが終了した場合にのみ、提供されたラムダ (通常はロールバック コードに使用される) を実行する SCOPE_FAIL マクロを実装できませんでした。これにより、dismiss() メンバー関数が不要になり、コードが読みやすくなります。
私は Alexandrescu 氏ほど天才でも経験豊富でもないので、SCOPE_FAIL の実装はこれほど簡単ではないと思います。
私の質問は、なぜですか?
c++ - Loki と C++11
ライブラリ Loki と新しい標準 C++11 についていくつか質問があります。
私の最初の質問はLevelMutex
、ライブラリの機能についてです。
機能を実装するために、Windows とLinux でLevelMutex
を直接使用します。クラスは非常によく設計されていますが、頭の中に疑問が残ります。新しい標準 ( ) に真新しいラッパーができたので、プラットフォームに依存する低レベル オブジェクトをこれに置き換える価値はありますか? そうでない場合、なぜですか?私の要点は、- Loki で多くのコンパイラ チェックを削除できることです。Loki の最新バージョンを維持でき、標準ライブラリで変更が発生した場合、すべての変更が Loki にプッシュされます。Loki の例外を使用できます。CRITICAL_SECTION
pthread_mutex_t
std::mutex
std::mutex
私はそれstd::mutex
がプラットフォームミューテックスオブジェクトの単なるラッパーであり、例外もシステム固有のエラーのラッパーであることを知っていますが、それでも...同じ質問が の機能に適用されThreads.h
ます。
2 番目の質問はSmartPtr
、Loki に実装されている についてです。shared_ptr
、などがあるという事実を考えると、この実装を使用する価値があると思います
unique_ptr
か? もしそうなら、なぜですか?そうでない場合は、 LockingPtr 実装を少し書き直して、スレッドセーフな shared_ptr を取得することをお勧めします。
最後の質問はstd::thread
、C++11 標準の新しい機能についてです。結合可能なスレッドや取り外し可能なスレッドを作成する機能など、この特定の機能のポリシー クラスを作成することを考えています。のどの部分についてstd::thread
ポリシーを作成するのが興味深いと思いますか?
回答ありがとうございます!
c++ - なぜ loki::flex_string の SmallStringOpt にアラインメントが必要なのか
flex_string のソース コードを読んでいるのですが、パフォーマンス上の理由だけで、アライメントが必要な理由がよくわかりません。
flex_string の設計ドキュメントのリンクは次のとおりです。
http://www.drdobbs.com/generic-a-policy-based-basicstring-imple/184403784#4
著者は言った: しかし、そのアライン事業とは何ですか?さて、このような「着席割り当て」を扱うときは、位置合わせの問題に注意する必要があります。
c++ - 可変個引数テンプレートを使用した Loki の Functor
Functor
ライブラリの実装について質問がありますLoki
。テンプレートの特殊化の行と行を使用する代わりに、可変個引数テンプレートで機能させるために、いくつかの変更を行っています。問題は、可変個引数テンプレートに typedef を使用しようとしていて、自分のエラーを理解していないことです。そのため、専門家の助けを借りることができます...
ここにヘッダーファイルがあります。
簡単な例でテストしました:
これは私にこのエラーを与えます
c++ - std::function と shared_ptr
私はしばらく Loki の Functor を使用しており、最近それについて質問しました (まだ回答がありません...) std::function を使用するように言われましたが、Loki の Functor の実装の方が好きです。パラメーターとしてのポインター (例: std::shared_ptr)。
std::function でそうする方法はありますか?
c++ - c++0x テンプレートで loki ObjectLevelLockable を使用できますか
Loki ライブラリを使用してスレッド セーフな fifo リストを作成したいのですが、gcc 4.3 を使用しており、エイリアス テンプレートをサポートしていないため、ガードを作成できません。
任意のアイデア... gcc 4.7 をインストールせずに?