テンプレートのデフォルトの場合、引数として受け取ったものを単に転送するだけの機能が必要です。具体的には、参考文献、定数などを保存する必要があります。 transparent(/* something */)
を書くことは、/* something */
と完全に同じです。引数を引き渡して単純に何もしない
この目的を達成するために、次の関数定義が正しいですか?
template <class S>
decltype(auto) transparent (S && s) { return std::forward<S> (s); }
私は実装が正しいと思います。しかし、目的は何ですか?基本的に 'std :: forward'の名前を変更しました。 –
'template struct Transform {/ * operator()は何もしない* /};テンプレート<>構造体変換 {MyOtherType演算子()(MyType t){return wrap(t);} }; '。 'return Transform {}(/ *私の関数が* /を計算しても何でも); –
JohnB