草庐IT

list_type

全部标签

c++ - 什么语言规则允许 C++11 推断这是一个 initializer_list 对?

在C++11中,初始化std::map似乎是合法的如下:std::mapmyMap={{"One",1},{"Two",2},{"Three",3}};直觉上,这是有道理的——大括号括起来的初始化器是一个字符串对列表,std::map::value_type是std::pair(可能具有一些const资格。但是,我不确定我是否理解此处的输入方式。如果我们在这里去掉变量声明,只用大括号括起来的初始化器,编译器就不会知道它正在查看std::initializer_list>。因为它不知道括号对代表std::pair秒。因此,编译器似乎以某种方式推迟了将类型分配给大括号括起来的初始化程序的行

C++ 模板部分特化 : Why cant I match the last type in variadic-template?

我尝试编写一个IsLast类型特征来检查给定类型是否是std::tuple中的最后一个类型,但下面的代码无法编译。我知道如何绕过它,但我很好奇为什么编译器不喜欢它。我想一定有一些我不知道的关于可变参数模板特化的规则。代码位于:https://godbolt.org/g/nXdodx错误信息:error:implicitinstantiationofundefinedtemplate'IsLast,int>,int>'还有关于特化声明的警告:warning:classtemplatepartialspecializationcontainstemplateparametersthatca

在网页下载文件时,设置各种文件格式的response头中的content-type

ExtMIMEType.docapplication/msword.dotapplication/msword.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document.dotxapplication/vnd.openxmlformats-officedocument.wordprocessingml.template.docmapplication/vnd.ms-word.document.macroEnabled.12.dotmapplication/vnd.ms-word.template.ma

c++ - 如何以标准方式组合 type_traits 中的条件

例如,我想使用类型T仅当std::is_pointer和std::is_const评估为true_type.当然还有一个简单的方法是这样的:templatevoidf(Tt,std::true_type,std::true_type){}templatevoidf(Tt){f(t,std::is_pointer{},std::is_const{});}但是我想要这样的东西:templatevoidf(Tt,std::true_type){}templatevoidf(Tt){f(t,std::and,std::is_const>{});}标准库是否包含类似std::and的内容??如果

c++ - 将对象添加到 std::list 时调用对象的析构函数

我有一个Foo对象和一个std::list保存它的实例。我的问题是,当我向列表中添加一个新实例时,它首先调用ctor,然后调用dtor。然后是另一个实例上的dtor(根据this指针)。单个实例已添加到列表中,但由于调用了它的dtor(及其父实例),因此无法按预期使用该对象。下面是一些简化的代码来说明问题:#include#includeclassFoo{public:Foo(){intbreakpoint=0;}~Foo(){intbreakpoint=0;}};intmain(){std::listli;li.push_back(Foo());} 最佳答

c++ - Visual Studio : Macro for checking configuration type (exe/dll)

是否有可用于检查visualstudio中当前配置类型的宏?根据当前设置,我想包含一个main或dllmain函数:#IFDEFCONFIGURATION_TYPE_EXEintmain(intargc,char**argv){...}#ELSEIFCONFIGURATION_TYPE_DLLBOOLAPIENTRYDllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){returnTRUE;}#ENDIF 最佳答案 如果是dll,那么_WINDLL将被定义为继

c++ - std::string::clear 和 std::list::clear 是否从内存中删除数据

在string::clear函数的描述中,它说:clear:Erasesthecontentsofthestring,whichbecomesanemptystring(withalengthof0characters).在list::clear函数的描述中,它说:clear:Removesallelementsfromthelistcontainer(whicharedestroyed),andleavingthecontainerwithasizeof0.清除是覆盖字符串和列表的内存还是只是释放它们? 最佳答案 这两个函数都不需

C++ typedef 和返回类型 : how to get the compiler to recognize the return type created with typedef?

#includeusingnamespacestd;classA{typedefintmyInt;intk;public:A(inti):k(i){}myIntgetK();};myIntA::getK(){returnk;}intmain(intargc,char*constargv[]){Aa(5);cout在这一行中,myInt未被编译器识别为“int”:myIntA::getK(){returnk;}如何让编译器将myInt识别为int? 最佳答案 typedef创建同义词,而不是新类型,因此myInt和int已经相同。问题

gcc 4.8.1 : list-initialization for copy constructor doesn't work 中的 C++11

我鼓励这个问题:如果我有classA{public:};intmain(){Aa{};Ab{a};}gcc给出:moves.cc:Infunction‘intmain()’:moves.cc:15:7:error:toomanyinitializersfor‘A’Ab{a};但是当我使用Ab(a)而不是Ab{a}时,所有编译都正确。如果我声明默认构造函数,它也会编译。为什么会这样? 最佳答案 该类是一个聚合,因此列表初始化将执行聚合初始化,并且不会考虑隐式声明的构造函数。因为没有数据成员,所以只有空列表可以是有效的聚合初始化器。Bu

已解决 docker: Error response from daemon: invalid mount config for type

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🐅🐾猫头虎建议程序员必备技术栈一览表📖:云原生技术CloudNative:🔥Golang🐳Docker☸️Kubernetes⛵Helm🔥Serverless🌩️AWSLambda☁️GoogleCloudFunctions📦Microservices🚀Envoy🌐Istio📊Prometheus🦄博客首页:🐅🐾猫头虎的博客🎐《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐《100天精通Golang(基础入门篇)》🐅学会Golang语言,畅玩云原生,走遍