我想寫類似:如何將模板作爲模板參數傳遞給模板?
// I don't know how this particular syntax should look...
template<typename template<typename Ty> FunctorT>
Something MergeSomething(const Something& lhs, const Something& rhs)
{
Something result(lhs);
if (lhs.IsUnsigned() && rhs.IsUnsigned())
{
result.SetUnsigned(FunctorT<unsigned __int64>()(lhs.UnsignedValue(), rhs.UnsignedValue()));
}
else
{
result.SetSigned(FunctorT<__int64>()(lhs.SignedValue(), rhs.SignedValue()));
}
return result;
}
哪想被使用:
Something a, b;
Something c = MergeSomething<std::plus>(a, b);
我該怎麼辦呢?
會不會有一個簡單的'template'就足夠了,然後通過'MergeSomething >;否則''boost :: function'或'boost :: bind'封面下的頂峯可能會給一些見解。 –
AJG85
2011-06-13 19:31:19
@ AJG85:否 - 如果你看一下示例代碼,我將在我自己的函數模板中使用不同的模板參數調用模板函數。 – 2011-06-13 19:31:57
啊是的,所以你是我想這是簡化的代碼和類型確定並不是那麼微不足道的實際。好的問題,我想我可能有一些通用的存儲類,可以從這樣的事情中受益。 – AJG85 2011-06-13 20:05:28