我正在閱讀舊的Alexandrescu關於C++模板的書,並且在下面的代碼片段中解釋了AbstractFactory模式實現(第9.3章)。這裏是:此代碼是否來自舊Alexandrescu的C++書籍有效?
template <class, class, class> class GenLinearHierachy;
template <class, class> class OPNewFactoryUnit;
template <class> class Reverse;
//definitions
template
<
class AbstractFact,
template <class, class> class Creator = OPNewFactoryUnit
class TList = typename AbstractFact::ProductList
>
class ConcreteFactory
: public GenLinearHierarchy<
typename TL::Reverse<TList>::Result, Creator, AbstractFact> //HERE.
{
public:
typedef typename AbstractFact::ProductList ProductList;
typedef TList ConcreteProductList;
};
我不明白爲什麼代碼是有效的。我們沒有在代碼段中的任何地方定義TL
。
想象一下,如果本網站上的所有問題都有像你這樣的標題:) – keyser 2015-04-01 16:28:17
你試過編譯代碼嗎?有錯別字。 – user2079303 2015-04-01 16:37:43
有問題的代碼似乎也有'#include'Typelist.h「',它定義'namespace TL'。 [(參考)](http://loki-lib.sourceforge.net/html/a00644.html) – 2015-04-01 16:57:13