template-specialization

    14热度

    4回答

    我正在写一个模板矢量型简单的数学库: template<typename T, size_t N> class Vector { public: Vector<T, N> &operator+=(Vector<T, N> const &other); // ... more operators, functions ... }; 现在我想专门为一些这样的一

    2热度

    2回答

    我有一个模板类,里面有一个模板方法,给出两个模板参数T和U.该操作相当昂贵,并且在分析中显示为主要用途的CPU时间。我可以在某种程度上对其进行优化,但仅适用于T == U(这很常见)的情况,但我不确定这样做的语法... 问题中的类和方法看起来像这样的: template<typename T>class Foo { public: ... template<typename

    15热度

    2回答

    当我编写类模板并需要完全专门化这些类的成员时,Doxygen无法识别专业化 - 它只记录通用定义或(如果只有专业化)最后的定义。这里有一个简单的例子: === MyClass.hpp === #ifndef MYCLASS_HPP #define MYCLASS_HPP template<class T> class MyClass{ public: static void fo

    0热度

    5回答

    // First try this: template <class T> T Read(istream& in) { T t; in >> t; return t; } // If there is no operator>>(istream&, T) try this: template <class T> T Read(istream& in) {

    2热度

    1回答

    这在VS 2008上编译,但它看起来像模板的非标准用法。 template <class T> class Foo { public: void bar(Foo<int> arg) { // do some stuff here } // more code ... }; 是否有问题,因为模板特Foo<int>包含在它自己的模板类的定

    5热度

    2回答

    的模板构造函数的显式模板特化我有像 template <class T> struct A{ template <class U> A(U u); }; 一类,我想写这方面的一个显式特申请宣告像 A<int>::A(float); 在下面的测试代码,如果我注释掉专业化,它会用g ++编译。否则,它说我打错电话的模板参数: #include <iostream>

    0热度

    1回答

    我知道如何专门的模板功能,但我想在这里做的是专门的功能对于具有给定方法的所有类型,例如: template<typename T> void foo(){...} template<typename T, if_exists(T::bar)>void foo(){...}//always use this one if the method T::bar exists T ::我的类中的b

    1热度

    2回答

    我在C++中实现了一个简单的STL映射。分解出来的比较,因为我奉命到一个类型,然后实现比较如下图所示: template <typename T> int KeyCompare<T>::operator() (T tKey1, T tKey2) { if(tKey1 < tKey2) return -1; else if(tKey1 > tKey2)

    1热度

    1回答

    如果您以前使用过CPPUnit,则可能知道其assertion_traits类被模板化以处理任意类型。这允许它在测试用例失败时打印非字符串类型的“实际”和“预期”值。我已经多次使用这个成功,但对于一种特定的类型,它不适合我。下面是我的课,其父类,以及一些非成员运营商的部分声明(整件事是巨大的,再加上我的公司不会让我将它张贴): class _declspec(dllexport) HWDBDate

    3热度

    1回答

    提供模板特我有以下情形: class my_base { ... } class my_derived : public my_base { ... }; template<typename X> struct my_traits. 我想专门my_traits从my_base派生的所有类,包括:即 template<typname Y> // Y is derived form m