草庐IT

uniform-initialization

全部标签

android-studio - 由于 "Could not initialize class com.intellij.ide.highlighter.JavaFileType",Kotlin 应用程序构建失败

我刚刚将AndroidStudio更新到2.2,现在我的Kotlin项目无法构建。gradle同步工作正常,但在尝试构建时,我立即遇到如下错误:Error:Executionfailedfortask':app:compileDebugKotlin'.>Couldnotinitializeclasscom.intellij.ide.highlighter.JavaFileType我检查了我的Kotlin插件是否是最新的。这个错误听起来像是与IDE和突出显示Java代码有关?任何帮助将不胜感激。 最佳答案 打开工具|Kotlin|在主

c++ initializer_list 和 shared_ptr 行为

这个问题在这里已经有了答案:Doubledeleteininitializer_listvs2013(1个回答)关闭8年前。我正在测试vs2013c++initializer_list。下面的代码可以编译。但是当我运行exe时崩溃。#include#includeclassBase{};classDerived:publicBase{};voidDoSomething(std::initializer_list>list){}intmain(){autoip=std::make_shared();std::cout()});//ng//DoSomething({ip,std::make

C++11 "In class initialization"功能不适用于 union

最小代码示例:structB{unionU{structS{}s;inti=100;}u;};现在,如果我们声明一个Bobj;,那么obj.u.i会被分配一个垃圾值而不是100。查看demohere.(垃圾值因优化标志等而异)。“类内初始化”功能是否应该与union一起使用。如果是,那么正确的语法是什么?或者这是一个g++错误?如果不是,那么inti=100;做什么? 最佳答案 这看起来像一个GCC错误。标准说(9.5p2):Atmostonenon-staticdatamemberofaunionmayhaveabrace-or-

c++ - 使用 std::initializer_list 作为成员变量

这个问题在这里已经有了答案:Canitbesafetokeepacopyofanstd::initializer_list?Whatistherationale?(1个回答)关闭4年前。我有一个A类,它接受一个initializer_list并将其存储为一个成员变量。classA{public:A(std::initializer_listil):m_il(il){}std::initializer_listm_il;};另一个类B将A作为成员变量,默认使用initializer_list初始化classB{public:B(){std::cout现在,当我在main中运行这段代码时,

c++ - 错误 : Qualifiers dropped in binding reference of type x to initializer of type y

为什么下面会抛出这个错误:IntelliSense:qualifiersdroppedinbindingreferenceoftype"string&"toinitializeroftype"conststring".hclassA{public:wstring&GetTitle()const;private:wstringtitle;};.cppwstring&GetTitle()const{returnthis->title;}如果我删除const词,它就会停止提示,但我从未对变量进行任何更改? 最佳答案 通过返回对类成员的非c

c++ - initializer_list c++11 中的评估顺序

在下面的代码中,是否要求在f2之前调用f1(或反之亦然),还是未指定?intf1();intf2();std::initializer_listlist{f1(),f2()}; 最佳答案 这是C++标准的一个有趣的角落,其中执行顺序定义明确。第8.5.4节[dcl.init.list],第4段:Withintheinitializer-listofabraced-init-list,theinitializer-clauses,includinganythatresultfrompackexpansions(14.5.3),aree

c++ - 为什么 std::uniform_real_distribution::max() 返回独占上限?

我问的主要是出于学术兴趣。documentation表示std::uniform_real_distribution生成[a,b)范围内的数字,其中a和b是构造函数参数。由于上限是独占的,我希望.max()返回小于.b()的最大可表示值。但是我在GCC、Clang和MSVC上都得到了.b()==.max()。(对于float、double和longdouble。)为什么?#include#include#includeintmain(){autod=std::uniform_real_distribution(0,1);std::cout我找到了thisnote说一些常见的实现仅将[a

C++ std::vector initializer_list 重载歧义 (g++/clang++)

考虑以下代码:#include#defineBROKENclassVar{public:#ifdefBROKENtemplateVar(Tx):value(x){}#elseVar(intx):value(x){}#endifintvalue;};classClass{public:Class(std::vectorarg):v{arg}{}std::vectorv;};无论BROKEN是否被定义,Clang++(7.0.1)编译它没有错误,但是如果BROKEN被定义,g++(8.2.1)会引发错误:main.cpp:9:20:error:cannotconvert‘std::vect

c++ - 可选地支持模板的 initializer_list 构造可能包装容器

如果我有一个包装标准容器的模板,似乎我可以相当轻松地委托(delegate)initializer_list构造函数:templatestructholder{Tt_;holder():t_(){}holder(std::initializer_listvalues):t_(values){}};例如,这与std::vector配合得很好。intmain(intargc,char*argv[]){holder>y{1,2,3};returnEXIT_SUCCESS;}但它很明显不适用于作为“int”的T或任何其他没有嵌套value_typetypedef的类型。因此,我想使用某种ena

c++ - 可以为 initializer_list 文字重载运算符吗?

这个问题在这里已经有了答案:InitializerlistsandRHSofoperators(1个回答)关闭5年前。我正在尝试为std::initializer_list重载运算符,但以下代码既不在GCC4.7.2也不在Clang3.2中编译:#includevoidoperator+(conststd::initializer_list&,conststd::initializer_list&);intmain(){{1,2}+{3,4};}13.5/6规定运算符函数应至少有一个参数,其类型为类、枚举或对其中之一的引用,标准将initializer_list指定为模板类,所以对我来