sfinae

    0

    1答えて

    私はテンプレートメソッドを持っています。これは引数の固定値を持つオブジェクトの基本クラスメソッドを実行します。存在しない場合は存在しません。できます。 メソッドが存在する場合、sfinaeをstd :: enable_if_tとともに使用して解決しました。 私には分かりませんが、どのようにstd :: enable_if_tを超えて、呼び出し元のメソッドの実際の戻り値をパススルーできるのですか。

    -1

    1答えて

    いくつかの演算子が特定の型に対して定義されているかどうかをチェックし、式の戻り値の型もチェックするいくつかのテンプレートがあります。特定の型でこのテンプレートをインスタンス化すると、すべてが正常ですが、一部の型ではMSVCで内部コンパイラエラーが発生します。 GCCでは、 "テンプレート引数が無効です"というエラーが表示されます。ポストインクリメントチェックをインスタンス化するときに問題を引き起こ

    2

    1答えて

    私が助けが必要なのは、以下のあいまいさを解決することです。しかし、あいまいさが解消されれば、私はまだ8つのスペシャライゼーションを実装するためのより簡潔でエレガントな方法があるかどうかを知る必要があります。 #include <iostream> template <typename> using void_t = void; template <typename T, typename

    2

    1答えて

    メタプログラミングで使用するSTL機能ライブラリおよび他のライブラリと同等のconstexprまたは他のコンパイル時間はありますか?具体的には、SFINAEを使用していくつかの条件を評価し、対応するタイプを生成するメタプログラムを作成しようとしています。例: template<int A, int B> enable_if_t<(A < B)> my_func() {// do somethin

    0

    1答えて

    編集:は完全に私が参加大規模なプロジェクトでは をコメントで提案を対処するための質問を書き直し、ラップメッセージは、イベントは、など彼らは共通の祖先を持っていないクラスがたくさんあります異なるグループの異なる人々によって書かれています(そしてそれでも)。 これらのクラス(または構造体)のほとんどは、エラーコードと説明を示すパブリックメンバーを持っています。しかし、それらは大部分が1つのグループ内で

    1

    2答えて

    私はコンストラクタを持たないクラスから派生しようとしています。intからですが、nullptrから、1つの引数を取るときにできるだけジェネリックとしてコンストラクタを作成しようとしています。 #include <cstddef> #include <iostream> struct Base { Base(std::nullptr_t){} Base(){}

    6

    1答えて

    C++ 11の専門家にはいくつか質問があります。 異なる動作を(3.5.0)++私はSFINAEと戦っていると私はグラムで奇妙なケースに出くわし++(4.9.2)、および打ち鳴らします。 私は、次のサンプルコードを用意しました。申し訳ありませんが、私はそれをもっと簡潔にすることができません。 #include <string> #include <iostream> #include <typ

    3

    3答えて

    BoostのSFINAEヘルパーの多くは、C++ 11のstdライブラリに登場していますが、has_dereferenceは持っていないようです。この機能以外にも、私は自分のパッケージからBoostの依存関係を取り除くことができました。それを完全に取り除きたいのですが、C++ 11標準機能だけで同じ効果を得るにはどうすればいいのですか?

    2

    1答えて

    誰かが奇妙な出力をここで説明できますか? #include <iostream> #include <type_traits> template <typename T> constexpr auto has_foo_impl(int) -> decltype(typename T::foo{}, std::true_type{}); template <typename T> co

    1

    1答えて

    私はかなりコードを理解していませんが、テンプレートの2つのパラメータがあります。第2のパラメータはclass = xxxxです。これは私には奇妙に思えます。どうすればいいのですか? std::enable_ifの他に、このC++の他のユースケースがありますか機能? template < class T, class = typename std::enable_if<std::is_integr