草庐IT

expression-templates

全部标签

c++ - 有没有理由使用 "::template"?

从全局命名空间获取模板名称时,您可以使用template关键字:templatevoidfunction_template();templatevoidh(){::templatefunction_template();}intmain(){h();}但是这段代码可以在没有它的情况下编译。在什么情况下可能需要这样做? 最佳答案 我能想到一个地方,但我认为它不太常见:#include//simpilefunctiontemplatetemplatevoidfunction_template(T){std::cout输出voidfunc

c++ - 什么是 Visual C++ 2008 Express 中的代码定义窗口?

我正在处理SphereOnlineJudge问题(好吧,我只是第2个大声笑)并使用VC++2008express,并且刚刚注意到“代码定义窗口”。这东西到底有什么作用?对我这样的初学者有用吗? 最佳答案 代码定义窗口为您提供光标所在代码的额外上下文。例如,如果您在以下代码中将光标置于Cat上:Catc;然后它会在代码定义窗口中显示Cat类的定义。如果你有如下代码:c.meow();当你将光标放在c上时,它会显示c的定义位置。(即代码行:Catc;)不使用此窗口,您只需右键单击代码的任何部分并选择gotodefinition。

c++ - reference_wrapper : make_pair VS Class Template Argument Deduction (CTAD)

为什么make_pair和类模板参数推导(CTAD)不同意生成哪种类型?#include#include#include#includeintmain(){intmyInt=5;std::reference_wrappermyIntRef=myInt;automyPair=std::make_pair(myInt,myIntRef);std::pairMy2ndPair(myInt,myIntRef);std::cout输出:St4pairIiRiE//std::pairSt4pairIiSt17reference_wrapperIiEE//std::pair>更新:为什么std::p

c++ - VC++ express,我该如何解决这个错误?

我有C#编程经验,但我这学期正在上C++课,并且正在编写我的第二个项目,但是当我尝试构建我的程序的调试配置时,我总是遇到这个错误。我的构建日志在下面,关于发生了什么的任何想法?我很茫然。谢谢大家!1>------RebuildAllstarted:Project:Project_2,Configuration:DebugWin32------1>Deletingintermediateandoutputfilesforproject'Project_2',configuration'Debug|Win32'1>Compiling...1>main.cpp1>Linking...1>LI

c++ - 嵌套模板特化结果为 "Illegal use of explicit template arguments"?

如何专门化嵌套模板?(请参阅下面的错误。)usingstd::reverse_iterator;templatereverse_iteratormake_reverse_iterator(constIt&it){returnreverse_iterator(it);}templateItmake_reverse_iterator>(constreverse_iterator&it){//Above^//errorC2768://'make_reverse_iterator':illegaluseofexplicittemplateargumentsreturnit.base();}

c++ - 在每个源文件中替代 "extern template"

我正在开发一个库,其中我们的许多核心对象都是模板,其中一个特定实例以指向该模板实例的智能指针的形式出现在项目的大多数文件中。我在单个源文件中明确实例化了这些模板。我们最近切换到C++11,我正在尝试使用新的externtemplateclassMyTemplate;加快编译速度。我的第一个问题是我是否在周围使用智能指针MyTemplate正在隐式实例化模板并要求文件顶部的“外部模板..”以避免重复实例化。我的第二个问题是是否有一些替代方法来添加所有这些externtemplateclassMyTemplate;到每个源文件。为我定义的每个模板搜索智能指针的每个实例并确保我在该文件中有正

C++ : Check if the template type is one of the variadic template types

这个问题在这里已经有了答案:Checkifatypeispassedinvariadictemplateparameterpack(3个答案)关闭7年前。假设我们有函数:templatevoidfoo(){...};检查“Kind”类型是否是C++(包括C++1z)中的“Kinds”类型之一的最简单方法是什么?

c++ - std::map.insert "could not deduce template argument for..."

我正在尝试熟悉STL库,但我无法理解我的编译错误。我使用编译器错误字符串“无法推断...的模板参数”搜索了其他问题,但没有一个答案似乎适用或相关。Error4errorC2784:'boolstd::operator&,conststd::unique_ptr&)':couldnotdeducetemplateargumentfor'conststd::unique_ptr&'from'conststd::string'c:\programfiles(x86)\microsoftvisualstudio10.0\vc\include\xfunctional125我正在编写一个简单的解释

手把手带你用 82 行代码实现一个简易版 Express 框架

本文将带大家实现轻量级web框架 connect[1] 的主要功能,只要82行代码就能搞定。我并没有标题党,因为Express在v3版本之前就是基于connect进行封装的,不过在v4版本就将connect依赖移除了[2],代码被搬到Express仓库里,并做了一些细微调整。因此某种程度上,学习connect就是在学习Express。connect的repo描述是:“ConnectisamiddlewarelayerforNode.js”,也就是一个Node.js的中间件层。中间件层是一个非常有用的机制,它类似一个插件系统,让我们可以通过插拔的方式组合不同功能来处理请求。基本使用先来看看con

c++ - 为什么我不能将 std::unique_ptr 用作 "template<class> class"参数?

这段代码:#includetemplateclassPtr>classA{Ptrints;};usingB=A;产生以下错误(使用GCC6.3):a.cpp:6:28:error:type/valuemismatchatargument1intemplateparameterlistfor‘templateclassPtr>classA’usingB=A;^a.cpp:6:28:note:expectedatemplateoftype‘templateclassPtr’,got‘templateclassstd::unique_ptr’现在,我可以像这样解决这个问题:templateu