C++でテンプレートに関連する条件付き戻り型を使用します。 C++ 11、14および17プレビューは私の環境で利用できます。テンプレート付き条件付き戻り型
私はプログラミングが初めてではありませんが、私はC++を初め、一部の機能と混同しています。
私は何を達成したいことは次のとおりです。テンプレートは、私の戻り値の型がint64_t
なりますint32_t
ある場合
、int16_t
はint32_t
とint8_t
はint16_t
を返します返されます。
実際に私は両方のための汎用テンプレートを使用しています:
template <class T, class T2>
static T2 Foo(T bar1, T bar2) { //do something }
int64_t x = Foo<uint32_t, uint64_t>(555555, 666666);
私は唯一のパラメータの種類を入力することによって、これはもう少し現実的なようにしたいと思います。
int64_t x = Foo<uint32_t>(555555, 666666);
int32_t x = Foo<uint16_t>(12000, 13000;
int16_t x = Foo<uint8_t>(88, 99);
私はstd::conditional
でそれを実装しようとした:
template<typename OtherType,
typename T = typename std::conditional<(sizeof(Type) <=
sizeof(OtherType)),
OtherType, Type>::type>
私が過負荷とクレイジーなアイデアを使用して開いています。
を望んで戻り値の型を取得するには、コンパイル時のマップを試みることができますか?ちょうどオーバーロード –
@MooingDuck私は彼がすべてのオーバーロードのために同じボディを繰り返すことを望んでいないと思う。さもなければ実際にテンプレートを使うのは意味がありません。 – skypjack