1
下面的代碼失敗下克++編譯,用下面的錯誤:找到的模板的模板功能否匹配
「爲調用沒有匹配的函數‘GetRecById(INT &,NULL)’」:
template < typename T >
struct DummyLookup
{
static bool DoLookup(T& rec, const char* id)
{
rec = 123;
return true;
}
};
template < typename T,
template <class> class LookupPolicy
>
static bool GetRecById(T& rec, const char* id)
{
return LookupPolicy<T>::DoLookup(rec, id);
}
static void testLookup(void)
{
int rec = 0;
const bool ret = GetRecById< int, DummyLookup<int> >(rec, NULL);
std::cout << "rec = " << rec << std::endl; // should be 123
}
int main()
{
testLookup();
return 0;
}
意圖是GetRecById()支持用不同的記錄查詢策略實例化爲單元測試目的。
我在這裏做錯了什麼? FWIW,它在Sun Studio 10下編譯。
在此先感謝。