草庐IT

template-parameter

全部标签

c++ - vector 声明 "expected parameter declarator"

这个问题在这里已经有了答案:Whycan'tmemberinitializersuseparentheses?(2个答案)关闭5个月前。我在类的私有(private)成员变量中有一行代码:vectordQdt(3)在xcode中编译时,会出现错误“expectedparameterdeclarator”。我想我提供了足够的信息。我认为此声明没有任何问题。

C++ 与 git 和 CMake : How to build submodules with specific parameters?

考虑一个在git存储库中组织的C++项目。假设git存储库有一个子模块,(super)项目依赖于该子模块构建了一个库。如果(super)项目不仅依赖于库,还依赖于使用特定(CMake)参数构建的库,那么如何确保在构建(super)项目时使用这些参数构建子模块? 最佳答案 必须将构建选项(如MYLIB_WITH_SQLITE)添加到库的接口(interface)中,即在老式配置的情况下添加到MYLIB_DEFINITIONS变量中-模块,或者到INTERFACE_COMPILE_DEFINITIONS属性,如果库使用install(E

C# 到 C++11 的转换 : delegate templates

我正在尝试将此C#代码转换为C++:publicdelegatevoidAction(Tobj);publicdelegatevoidAction(T1arg1,T2arg2);publicdelegatevoidAction(T1arg1,T2arg2,T3arg3);很明显这调用了std::function。由于这是一个更大的项目,我使用了一个工具来完成所有的转换,这就是它得出的结果:#includetemplate//C#TOC++CONVERTERTODOTASK:C++doesnotallowspecifyingcovarianceorcontravarianceinagen

c++ - 嵌套命名空间 : where should default template arguments go? 中模板类的前向声明

我在嵌套命名空间中有一个模板类的前向声明namespacen1{namespacen2{templatestructA;}usingn2::A;}接着是一个定义,实际上它在不同的文件中,中间有一些东西:structX{};namespacen1{namespacen2{templatestructA{};}usingn2::A;}那么以下总是可以的:n1::n2::Aa;但是这个捷径n1::Aa;在clang中给出编译错误error:toofewtemplateargumentsforclasstemplate'A'除非我删除前向声明;g++两者都接受。clang似乎保留在第一个不包含

c++ - 为什么未调用的模板类成员 *parameters* 被实例化?

这个问题是对立的:Whyuncalledtemplateclassmembersaren'tinstantiated?,作者对某些模板方法未实例化感到惊讶。我遇到了相反的问题:我的部分函数在我不期望的时候被实例化了。采取以下程序:templateclassFoo;templateclassBar{templatevoidBaz(typenameFoo::Xx){}};intmain(){Barbar;}此程序编译失败并出现错误:test.cc:6:40:error:implicitinstantiationofundefinedtemplate'Foo'templatevoidBaz(

c++ - g++ 错误 : specialization after instantiation (template class as friend)

考虑以下C++代码:templateclassSingleton{};classConcreteSingleton:publicSingleton{templatefriendclassSingleton;};intmain(){}Singleton应该是ConcreteSingleton的friend:它适用于Microsoft的可视化C++编译器。但是,我不能用g++4.8.4编译它。错误是:error:specializationof‘Singleton’afterinstantiationtemplatefriendclassSingleton;有什么办法可以解决吗?

C++ template-id 不匹配任何模板?

我用模板和特化写了一个简单的代码:#includetemplateintHelloFunction(constT&a){std::coutintHelloFunction(constchar*&a){std::cout我认为char*特化是正确的,但是g++报告:D:\work\test\HelloCpp\main.cpp:11:5:error:template-id'HelloFunction'for'intHelloFunction(constchar*&)'doesnotmatchanytemplatedeclaration请帮我找出错误。 最佳答案

c++ - 错误 : C2988: unrecognizable template declaration/definition

我的两个模板的标题中出现错误。两者都有类似的声明和定义如下:templatevoidsetVideoCodecOption(T1AVCodecContext::*option,T2(CR2CVideoCodecSettings::*f)()const);templatevoidEncoderPrivate::setVideoCodecOption(T1AVCodecContext::*option,(CR2CVideoCodecSettings::*f)()const){T2value=(m_videoSettings.*f)();if(value!=-1){m_videoCodecC

c++ - 错误 : argument of type char* is incompatible with parameter of type LPCWSTR

#include#includeusingnamespacestd;intmain(){char*file="d:/tester";WIN32_FIND_DATAFindFileData;HANDLEhFind;hFind=FindFirstFile(file,&FindFileData);//lineoferrorsaysargumentoftypechar*isincompatiblewithparameteroftypeLPCWSTR}我无法理解错误。错误是什么以及如何解决错误?我正在制作一个控制台应用程序,需要检查目录中是否有文件。 最佳答案

c++ - 模板特化站点报告 "too few template-parameter-lists"错误

代码某处有错误,但我不知道如何解决。它说“模板参数列表太少”。我不明白哪个是错误的。代码如下:#if!defined(VECTOR_H_INCLUDED)#defineVECTOR_H_INCLUDED#include//forsize_tnamespaceVec{classVector_base{public:explicitVector_base(){}};templateclassVector:publicVector_base{typedefVectorME;explicitVector(T,T,T);doubledot(constME&v)const;T&operator[]