草庐IT

non-passphrase-protected

全部标签

c++ - VS2015 更新 1 个错误,或错误的 C++ : Why can't a friend class access its friend's protected destructor?

以下似乎是ZeroCICE在其自动生成的代码中采用的一种模式,在我看来,这似乎是他们现在为其工具的许多版本制作单例(不确定为什么)的一种方式。各种编译器都没有问题,直到今天发现VisualStudio2015Update1(VS版本14.0.24720.00,VC++版本19.00.23506)报错。在Update1之前,VS2015也没有问题。我不确定它是带有Update1的VS2015C++编译器中的错误(回归?),还是其他编译器放任自流的错误(不符合标准)C++代码。这是代码模式的示例:classFoo{protected:virtual~Foo(){}friendclassFo

c++ - 将 NON-POD 类型传递给 Variadic 函数是未定义的行为?

Inthisdocument,作者说OnlyaPOD-typecanbeanargumentfortheellipsis"..."whilestd::stringisnotaPOD-type.我将此理解为将NON-POD类型传递给Variadic函数是未定义的行为。对吗?不过,他是在说C/C++标准吗?我试图在n3242C++规范中找到它。但是找不到。我想知道我的理解是否正确,这是一个标准。 最佳答案 它在C++115.2.2/7中指定:Passingapotentially-evaluatedargumentofclasstype

C++11 "Non-movable"类型

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WhydoC++11-deletedfunctionsparticipateinoverloadresolution?我对以下C++11代码有两个问题:#includeusingnamespacestd;structA{A(){cout我用gcc和clang得到以下编译错误gcc-4.7.2(g++--std=c++11main.cpp):main.cpp:Infunction‘Af()’:main.cpp:16:9:error:useofdeletedfunction‘A::A(A&&)’main.cpp:8

c++ - 为什么我不能从基类的实例访问 protected 成员?

这个问题在这里已经有了答案:accessingaprotectedmemberofabaseclassinanothersubclass(8个答案)关闭7年前。假设我有这段代码:classfoo{protected:inta;};classbar:publicfoo{public:voidcopy_a_from_foo(foo&o){a=o.a;//Error}voidcopy_a_from_bar(bar&o){a=o.a;//OK}};intmain(){barx;fooy;barz;x.copy_a_from_foo(y);x.copy_a_from_bar(z);}这里clas

c++ - "control reaches end of non-void function"枚举类型完全处理大小写切换

为什么即使处理了type_t的所有可能值,此代码也会触发“控制到达非空函数的结尾”?处理此警告的最佳方法是什么?在切换后添加return-1?(代码测试here)typedefenum{A,B}type_t;intuseType(type_tx){switch(x){caseA:return0;caseB:return1;}}相关:Detectingifcastinganinttoanenumresultsintoanon-enumeratedvalue 最佳答案 一般来说,enum不是唯一的。例如,有人可以像useType((ty

c++ - 单例 - protected 与私有(private)构造函数

在设计单例时,为什么构造函数是protected而不是private?这是基于我在网上看到的内容。我们想控制该类的实例数量,这很公平,但为什么要protected?private不也可以解决这个问题吗? 最佳答案 首先,在绝大多数情况下,单例不是一个好主意(Why?)。与全局变量相比,使用它们甚至更少。这样子类就可以实例化Singleton基类,在它自己的GetInstance()类型函数中将其作为自身的一部分返回。这就是它在设计模式中完成的原因。因此,如果您计划从Singleton继承,它才真正相关。GoF说,(第130页,子类化

c++ - 父类中 protected 数据在子类中不可用?

我很困惑:我认为protected数据可由C++中给定类的子级读取/写入。以下代码片段无法在MS编译器中编译classA{protected:intdata;};classB:publicA{public:B(A&a){data=a.data;}};intmain(){Aa;Bb=a;return0;}错误信息:Microsoft(R)32-bitC/C++OptimizingCompilerVersion15.00.30729.01for80x86Copyright(C)MicrosoftCorporation.Allrightsreserved.demoFail.cppdemoFa

c++ - std::is_constructible on type with non-public destructor

std::is_constructible的预期结果是什么?在具有私有(private)或protected析构函数的类型上?例如,即使只有friend可以释放它,我仍然可以在堆上构造这样一个对象:#includeclassFoo{friendvoidfreeFoo(Foo*);public:Foo(){}private://Destructorisprivate!~Foo(){}};voidfreeFoo(Foo*f){deletef;//deletingafooisfineherebecauseoffriendship}intmain(){Foo*f=newFoo();//dele

java - 使用接受 Kotlin 中 protected 类的公共(public)方法从 Java 类继承

我有这种情况:有一个Java类publicclassA{publicvoidoverrideMe(Bparam){//TODO:overridemeinKotlin!}protectedstaticclassB{}}还有一个Kotlin类,它继承自它并且必须覆盖方法“overrideMe”classK:A(){overridefunoverrideMe(param:B){println("Wow!")}}但Kotlin不允许这种行为。'public'functionexposesits'protected(inA)'parametertypeB有什么办法可以解决这个问题吗?附:这不仅仅

java - 使用接受 Kotlin 中 protected 类的公共(public)方法从 Java 类继承

我有这种情况:有一个Java类publicclassA{publicvoidoverrideMe(Bparam){//TODO:overridemeinKotlin!}protectedstaticclassB{}}还有一个Kotlin类,它继承自它并且必须覆盖方法“overrideMe”classK:A(){overridefunoverrideMe(param:B){println("Wow!")}}但Kotlin不允许这种行为。'public'functionexposesits'protected(inA)'parametertypeB有什么办法可以解决这个问题吗?附:这不仅仅