typename

    1热度

    2回答

    嗨,我 很困惑,如何进入像这样的一个重载的模板函数:使用功能,如 template <typename T> friend istream& operator>> (istream& in, Matrix& right) { for(int i=0; i<right.rows*right.cols; i++) cin >> right.elements[i]; }

    1热度

    2回答

    这是一个奇怪的问题,因为我已经知道'编码'的答案。我只想更好地理解它为什么如此。有大师在这里有一个解释这些东西比C++标准更好的诀窍:) 下面我们有一种方法来定义一个抽象工厂模板,它基于字符串作为关键字分配对象(这是一个人为的例子): - #include <iostream> #include <map> #include <string> using namespace std;

    19热度

    3回答

    考虑以下代码, template<class T> struct Sample { typename T::X *x; //declare pointer to T's X }; 在上面的代码中,关键字typename是由编译器必需的,所以它可以嵌套类型和在模板嵌套值之间消除歧义。这意味着,在没有typename关键字,编译器将其解释为的T :: X,其中x的乘法, T::X

    12热度

    5回答

    我希望派生类是模板类的后代。该类取决于后代的成员。 总之我想这个代码编译: struct IBootParams { virtual bool GetImmediate() = 0; }; template <class T> struct TBootBootParams { typename T::TransType transferType; typ

    0热度

    5回答

    模板类和init我有一个模板类,富: template <class A, class B> class Foo { public: Foo(A &aInstance); private: Attr<Foo> _attr; }; 然后我还有一个叫的Attr模板类,这是我的Foo类的属性,这需要作为模板参数Foo类本身。 template <class C> c

    7热度

    2回答

    我有下面的代码有问题: template <typename U> class lamePtr { public: typedef U* ptr; }; template <typename U> class smarterPointer { public: void funFun() { typedef lamePtr<U> s

    8热度

    2回答

    我正在考虑使用字符#@!在我们的系统生成的一些COM接口中。 COM类型库也被导出到.NET。那些角色以后会给我带来麻烦吗? 我已经测试了今天的大部分时间,这一切似乎都很好。我们的系统继续像往常一样继续工作。 我很谨慎的原因是这些字符在MIDL中是非法的,它使用C语法作为类型名称。但是我们不使用MIDL - 我们使用ICreateTypeInfo和ICreateTypeLib构建我们的类型库。看起

    6热度

    2回答

    在this question,提问者有以下功能: template<typename ITER> bool nextPermutation(ITER start, ITER end) { return nextPermutation(start, end, std::iterator_traits<ITER>::iterator_category()); } 为什么不是std:

    3热度

    4回答

    我一直在一个小项目,最近的工作时,我无法弄清楚的东西我使用关键字“类型名称” .. 我已经拥有一个.H文件包含一个类,使用一个typename模板。在那个班里面有一个私人班。 template <typename T> class Something { public: Something(); ~Something(); Node* Function1

    13热度

    1回答

    我试图使用C++标准库的find算法是这样的: template<class T> const unsigned int AdjacencyList<T>::_index_for_node( const std::vector<T>& list, const T& node ) throw(NoSuchNodeException) { std::vecto