decltype

    3

    1答えて

    例えば、簡単な身元ファンクタ: template <typename T> class identity { public: constexpr auto operator()(T && i) -> decltype(std::forward<T>(i)) { return std::forward<T>(i); } }; 返り値のために(C+

    2

    3答えて

    find_me関数の戻り値の型を見つけるのと同じトリックを誰かが持っているかどうか知りたいです。 struct Stuck { Stuck() = delete; Stuck(Stuck&&) = delete; Stuck(const Stuck&) = delete; Stuck& operator=(Stuck&&) = delete; St

    0

    1答えて

    私はそれを私が望むように動作させるためにこのコードを作るためのヒントを教えてください。 derived_tはDerivedになりますが、それは常にBaseです。 #include <iostream> #include <string> #include <memory> struct Base { virtual std::string me() { return "Base"

    3

    2答えて

    レンジ・アクセス機能std::beginが(コンテナのために)宣言されています。それは単に template< class C > decltype(C::begin) begin(C& c); ない理由 template< class C > auto begin(C& c) -> decltype(c.begin()); 私だけだろうこれら二つの間に違いはありますか?

    0

    1答えて

    template<typename T, typename F> auto myfunc(T elem, F func) -> decltype(func(elem)) { return func(elem); } に、私は、関数の戻り値の型ができるかどうかを知りたいと、私は、decltypeの非常に簡単な使用方法を知っています関数の引数を参照することなく、引数の型、つまりde

    4

    2答えて

    あなたはどんな点でより良いと思いますか? template <typename T> void func(T x,T y) {} 又は template <typename T> void func(T x,decltype(x) y) {} 私見は、第2の形態は、xとyの種類との間でリンクが明示的であるため、好ましいと思われる、少なくともテンプレート識別子ものの名前を変更すると、より少な

    0

    1答えて

    元々、クラス内でconst修飾子の有無にかかわらず宣言されたかどうかを推測したいと思っていました。多くの人が指摘しているように、変数自体はconst(クラスではない)として宣言されています。これを明確にしてくれてありがとう。エラーメッセージは完全に私には分かります。だから、それは設計上の問題です。 ランダムアクセスコンテナのように動作し、iterator begin(){...},const_it

    0

    1答えて

    size()メソッドとsize_type定義を持つ任意のコンテナのサイズを返す汎用関数を作成しようとしています。これまでのところ私は2つのアプローチを試してみましたが、どちらもコンパイルされていない: std::vector<int> vec; auto sz = len(vec); を明らかに、私は削除する場合: 1. template <typename Cont> auto len(

    1

    1答えて

    私はmain json11 header fileのソースコードを読んでいます。私はテンプレート宣言が、無成功内部decltypeとclassのこの使用方法に関するいくつかのドキュメントを見つけようとしている template <class T, class = decltype(&T::to_json)> Json(const T & t) : Json(t.to_json()) {} :