typelist

    0

    1答えて

    現在、C++テンプレートを使用して自動的にクラス階層を構築しようとしています。最終的な結果は、型リストにあるすべての可能なメッセージのハンドラ関数を提供するメッセージハンドラクラスです。 ただし、そのクラス階層を継承し、実際にアプリケーションコードを処理するハンドラ関数を実装しようとすると、一部の型の場合にのみ、C++は基本クラスから関数を呼び出しません。 以下は、達成しようとしている最小限の完全

    0

    1答えて

    プログラマがいくつかの関数FUNC()を呼び出す前後に任意の数のラップを適用できる単純な汎用スマートポインタテンプレートを作成したいと考えています。例えば、 タイマー、ロック、log_start、FUNC()、log_end、ロック解除、タイマーの停止を開始する必要があった場合 次に、プログラマーが3つのタイプと関数をテンプレートに指定した場所を簡単に書くことができます。コンパイラに残りをさせてく

    4

    2答えて

    シンプルなタイプリストの実装があります。 template<typename... Ts> struct Typelist { static constexpr size_t count{sizeof...(Ts)}; }; はtypelistに種類ごとにstd::vector>のstd::tupleを生成するために、私はそれで何をしたいのか、です。例えば: template<

    6

    1答えて

    私はModern C++ Designを通して読んでいます。タイプリーストの構造がバリデーショナルなテンプレートに置き換わる可能性があると私は考えました。どちらもリスト内の最初の型と残りのリストを別々に処理するために再帰に依存しているようです。タイプリーストがバリデーショナルテンプレートではできないことを許可するものはありますか?

    1

    2答えて

    私はLokiのC++ HierarchyGeneratorが好きで、C#でも同じことをしたいと思います。 私が最後に望むのは、与えられたタイプリストの引数ごとに仮想関数を持つクラスです。 template <class T> class SenderV { public: virtual void Send(T t) = 0; }; template <int i> clas

    10

    3答えて

    「現代C++デザイン」のタイプリストについて読んだことがあります。タイプリストに異なる、関連しないタイプを入れることで、それを継承なしで一度に複数のタイプを表現するために使用することができます。プリミティブ型を使っていくつかの単純な関数でタイプリストをテストしましたが、それらのどれも動作させることができませんでした。 私のタイプリストの理解が間違っているかどうかを教えてもらえますか?また、毎日の平

    1

    2答えて

    私はhana::tuple_t<int, char, double, float>を持っています。これを使ってhana::tuple<int, char, double, float>を作成します。 私はhana::to<hana::tuple_tag>を使用するとhana::tuple_t<int, char, double, float>をhana::tuple<int, char, doub

    3

    2答えて

    私はオブジェクトがオプションの機能を提供するためのインターフェイスを実装できる単純なオブジェクトモデルを使っています。心臓部では、オブジェクトはgetInterfaceメソッドを実装しなければならず、これには(一意の)インターフェイスIDが与えられます。このメソッドは、インタフェースへのポインタを返します。オブジェクトが要求されたインタフェースを実装していない場合はnullを返します。このフレーム

    1

    1答えて

    私はtype-visiatorをC++タイプリストよりも実装する方法を探しています。ここでは、タイプビジターの型に対して特定の演算子(sizeofなど)を実行するための型ビジターを意味しました。 概念的には私が何をしたいです。もちろん typedef TYPELIST_3(bool, int, double) tl; size_t tl_size = TL_sum_size<tl>(); //