0
我想創建一個支持迭代器的自定義容器。它看起來像這樣:Boost iterator_facade和轉發聲明
class SomeContainer {
...
public:
typedef SomeIterator iterator;
iterator begin() { ... }
iterator end() { ... }
};
然後,我創建一個迭代器這樣的:
class SomeIterator: public boost::iterator_facade<
SomeIterator,
SomeType,
boost::bidirectional_traversal_tag> {
...
}
的問題,這是下面的。如果我在SomeiIterator
之前聲明並且正向聲明SomeIterator
,那麼編譯器會抱怨SomeIterator
是不完整類型的方法begin()
和end()
。但是,如果我以另一種方式進行操作,那麼問題就出現了:SomeContainer
不完整。
- 是否有可能同時具有這兩個類全頭,只和所有方法隱含的內聯(它們大多隻包含幾行)來解決這個問題呢?
- 如果沒有,是否可以通過將一些方法分解爲cpp文件來解決它?
哎呦,我錯打了它。模板參數分別是SomeIterator和SomeContainer。 – petersohn 2012-08-14 19:25:48