摘要: #include<iostream> using namespace std; template<typename Head, typename ...Tail> double Max(Head first, Tail... rest) { double Maxnum = 0; Maxnum = M 阅读全文
posted @ 2024-11-08 18:03 double64 阅读(56) 评论(0) 推荐(0)
摘要: 两个例外规则 假定 i 是一个 int 对象,我们可能认为像 f3(i) 这样的调用是不合法的。毕竟,i是一个左值,而通常我们不能将一个右值引用绑定到一个左值上。但是,C++语言在正常绑定规则之外定义了两个例外规则,允许这种绑定。这两个例外规则是move 这种标准库设施正确工作的基础。 第一个例外规 阅读全文
posted @ 2024-11-08 17:43 double64 阅读(58) 评论(0) 推荐(0)
摘要: 与非模板函数一样,我们在一次调用中传递给函数模板的实参被用来初始化函数的形参。如果一个函数形参的类型使用了模板类型参数,那么它采用特殊的初始化规则。只有很有限的几种类型转换会自动地应用于这些实参。编译器通常不是对实参进行类型转换,而是生成一个新的模板实例。 与往常一样,顶层 const(参见 2.4 阅读全文
posted @ 2024-11-08 14:14 double64 阅读(64) 评论(0) 推荐(0)
摘要: // template.hpp template<typename T> class Dylan { public: Dylan(T t); T m_data; }; // template.cpp #include "template.hpp" template<typename T> Dylan 阅读全文
posted @ 2024-11-08 14:01 double64 阅读(52) 评论(0) 推荐(0)
摘要: 这两天写了个Dll,要导出普通类中的模板函数,稍微查了一下,没查到具体资料。自己根据C++模板的编译原理,推断出应该要源码放在头文件中直接导出,查了下接触的Open Source项目,确实如此。这里记录一下,方便下次查阅。 1、宏定义说明: #ifdef DLL_PROJECT #define TE 阅读全文
posted @ 2024-11-08 13:50 double64 阅读(396) 评论(0) 推荐(0)