そのため、テンプレートの特殊化の使用方法を理解しようとしていましたが、予期しないコンパイラ エラーが発生しました。構文をチェックすればするほど、正しいように見えるので、明らかに何かが欠けています。私がやろうとしているのは、特殊化された 2 つの関数テンプレートを作成し、それらをオーバーロードされた関数と比較することだけです。私が得るエラーは次のとおりです'OverloadedFunk' could not be resolved
。28行目と35行目です。これが私がロックしようとしているコードです:
#include <iostream>
using namespace std;
enum ErrorCode {
ERROR_NONE = 0, ///< No errors
SOME_FAILURE_01,
SOME_FAILURE_02,
INVALID_STATUS,
ERROR_UNKNOWN,
};
template<typename _to, typename _from>
inline int OverLoadedFunk(_from const &arg, _to &dest)
{
cout << "OverLoadedFunk3 - Template to from";
return 0;
}
template<>
inline int OverloadedFunk(const int &from, std::string &dest) //Line 28
{
cout << "OverloadedFunk1 - int to string";
return 0;
}
template<>
inline int OverloadedFunk(const ErrorCode &from, std::string &dest) //Line 35
{
cout << "OverloadedFunk2 - enumeration to string";
return 0;
}
int main() {
std::string localDest = "test";
int localFrom = 1234;
OverloadedFunk(localFrom, localDest);
return 0;
}
ここで私は正確に何を間違っていますか?代わりにオーバーロードされた関数を使用できることはわかっていますが、特殊化とオーバーロードされた関数の違いをテストしようとしているため、この場合は役に立ちません。すべてのヘルプは大歓迎です。