1
我想實現這樣的事情:調用(回調)的模板類模板參數
template<class IT>
size_t foo(IT begin,IT end) {return end-begin;}
template<template (class) class FOO>
class BAR
{
public:
any_container<any_type> container;
size_t call_foo
{
FOO<any_container<any_type>::iterator>(container.begin(), container.end());
}
};
此外,我希望能夠傳遞功能,拉姆達或函數對象爲FOO
。 這裏應該使用std::function
,但不可能用任意類型T
來聲明std::function<size_t(T,T)>
。 我絕對不想在模板BAR參數列表中指定內容器或其迭代器的類型。
有什麼辦法可以用優雅的方式解決這個問題嗎?基於您的評論
你知道的std ::'開始'和'std :: end'? – 2013-05-13 10:58:50
在你的例子中'foo()'的目的是什麼?什麼是'any_container'? – 2013-05-13 11:09:28
BAR是通用協議實現,foo是系統相關的低層發送或接收實現。 std :: begin和end如何提供幫助? – ardabro 2013-05-13 11:18:40