C++で関数戻り型のオーバーロードをモックする方法を見つける必要があります。
それを直接行う方法がないことは知っていますが、すぐに使える方法があることを願っています。ユーザーが作業するためのAPIを作成しており、文字列情報に基づいて値を取得するデータ文字列を渡します。これらの値は異なるタイプです。本質的に、私たちは彼らに次のことをさせたいと思います。
int = RetrieveValue(dataString1);
double = RetrieveValue(dataString2);
// Obviously, since they don't know the type, they wouldn't use int =.... It would be:
AnotherFunction(RetrieveValue(dataString1)); // param of type int
AnotherFunction(RetrieveValue(dataString2)); // param of type double
しかし、それはC ++では機能しません(明らかに)。現在、次のように呼ばれるように設定しています。
int = RetrieveValueInt(dataString1);
double = RetrieveValueDouble(dataString2);
ただし、データ文字列のタイプを知っている必要はありません。
残念ながら、外部ライブラリの使用は許可されていないため、Boostを使用することはできません。
これを回避する方法はありますか?
明確にするために、私はC++がネイティブにそれを行うことができないことを理解しています。しかし、それを回避する方法が必要です。たとえば、RetrieveValue(dataString1、GetType(dataString1))を実行することを考えました。GetTypeも1つのリターンタイプしか持てないため、これで実際に修正されることはありません。しかし、私はそのようなものが必要です。
私はこの質問が以前に尋ねられたことを理解していますが、別の意味で。明白な答えはどれも使えません。それが私にとって有用であるためには、完全に箱から出してすぐに使えるものが必要ですが、他の質問の回答には当てはまりませんでした。