template-specialization

    6热度

    1回答

    考虑以下情况: #include <iostream> template <class T> void f(T) { std::cout << "#1\n"; } // #1 template <> void f(const int) { std::cout << "#2\n"; } // #2 int main() { f<const int>(1); // call #1

    15热度

    2回答

    说我有我的代码结构是这样的: 那么header1.h template <class T, template<class> class C> struct metafunction { using type = typename C<T>::type; }; inline namespace msn { template <class T> struct impleme

    1热度

    2回答

    如何针对各种标量值专门化很多模板? (如int,float,size_t,uint32_t和在stdint标题中定义的类型)? 我可以避免为每种类型专门化每个模板吗? 如果可能,我不想使用boost或其他非标准库。 那里template specialization for a set of types有一些解决方案: 替换每个模板具有多种功能。每种标量类型都有一个函数。 (但是有很多模板,这意味

    1热度

    1回答

    如何为具有std :: enable_if参数的模板类编写外联析构函数体? (我需要这个写一个装饰器,为其他对象类型添加一个标识符)。 代码: template<typename T, typename std::enable_if<std::is_base_of<X,T>::value>::type* = nullptr> class IdentifiedInstance: public T

    5热度

    3回答

    我想为std::string参数创建一个专门的构造函数,但当我用字符串参数调用它时总是使用另一个。 struct Literal : Expression { template <typename V> Literal(V val) { value = val; } }; template <> Literal::Literal(st

    0热度

    1回答

    模板函数我有一个模板函数: template<typename T> void foo(T const & t); 而且该函数的一些特例: template<> void foo<int>(int const & t) { cout << t << endl; } template<> void foo<const char *>(const char * const & t

    3热度

    1回答

    我有一个需要访问其模板类型的特征的通用算法。有一个特质类可以专门用于提供这些特征。 在我的课堂中使用这个算法时,我想使用它在类中定义的私有类型。 但是,专业化只能发生在namespace或全球范围内,我的班级无法访问。 class A { struct Secret {}; }; template <typename T> struct Trait {}; // I

    4热度

    4回答

    考虑以下几点: template <class...> struct MyT; template <class T> struct MyT<T> {}; template <template <class> class TT = MyT> struct A {}; // fine using B = A<MyT>; // does not compile int main()

    2热度

    2回答

    我在这里做了一个小型的研究,这需要在某个阶段,我有不同的类在某些数据上做(或不做)操作,这取决于它的常量。 一个小例子是这样的(http://coliru.stacked-crooked.com/a/75c29cddbe6d8ef6) #include <iostream> template <class T> class funny { public: funny(T& a)

    1热度

    1回答

    我想问你最近几天我遇到的编程头痛的帮助。让我试着解释我即将实施的内容... 我的目标是定义一组有效的等式。让我更详细地解释... 我认为是每个方程对象的仿函数 - 定义operator()的类。该运算符的定义应该针对每个方程类型专门定义。专业化包含计算本身: .H: enum class IDs : int { A = 0, B = 1, C = 2 }; template<IDs WHICH