0
我正在做一個模板,它表示容器與過濾器。它將包含容器應具有的所有方法,但所有方法都可以使用該過濾器。所以例如如果過濾器是>1
那麼begin()
將返回適合該過濾器的第一個元素。我想問一下模板聲明是否正確,或者它應該是什麼樣子?它應該是模板中的模板還是?模板接收容器作爲參數
template<typename Container,class Filter>
class filtered_cont{
//methods working with container
}
這可能是繼承工作,從容器派生的filtered_cont。它仍然可以是Filter中的一個模板,這種方式可以用概念的方式實現,只有期望filtered_cont的東西可以使用它,所以沒有辦法強制它是一個容器(除了編譯時錯誤,假設你不放置靜態斷言並檢查每種方法的存在))) –
看起來沒問題。您可以像處理標準庫中的分配器一樣處理過濾器。 –