草庐IT

safe-publication

全部标签

c++ - fatal error LNK1302 : only support linking safe . 网络模块;无法链接 ijw/native .netmodule

我有native非托管代码。我创建了一个托管C++DLL并尝试将此DLL包含到native非托管代码中。我收到以下错误fatalerrorLNK1302:onlysupportlinkingsafe.netmodules;unabletolinkijw/native.netmodule如何将托管C++/CLRDLL包含到native非托管代码中? 最佳答案 确保您添加的是库('.lib')文件,而不是DLL('.dll')作为链接器的输入。那肯定会产生LNK1302错误。 关于c++-f

C++ 构造函数 : why is this virtual function call not safe?

这是来自C++11标准sec12.7.4。这比较困惑。文中最后一句话到底是什么意思?为什么最后一个方法调用在B::B不明确的?不应该只是打电话a.A::f?4Memberfunctions,includingvirtualfunctions(10.3),canbecalledduringconstructionordestruction(12.6.2).Whenavirtualfunctioniscalleddirectlyorindirectlyfromaconstructororfromadestructor,includingduringtheconstructionordest

c++ - 一个类(class)可以有两个公共(public)部分吗?如果是,那为什么?我们在什么情况下这样做?

有一些关于类(class)的问题困扰着我。例如classA{public:A(){..........}voidcleanup(){............}public:UINTa;ULONGb;};在上面的例子中有两个公共(public)部分。在第一节中,我定义了一个构造函数和一个方法,在第二节中,我声明了数据成员。是上述类,即正确。我们可以这样做吗?如果是,那么为什么需要它,我们应该在什么情况下使用它?既然我们可以在一个部分中完成整个事情,那么为什么会有两个部分呢? 最佳答案 访问限定符仅适用于下一个限定符之前的代码。此类限定

java - 公共(public)领域的替代品有哪些?

我正在用Java编写游戏,作为问题标题的建议,我在我的类(class)中使用公共(public)字段。(暂时)据我所见,公共(public)领域很糟糕,我对原因有所了解。(但如果有人能澄清为什么你不应该使用它们,那将不胜感激)问题是,从我所见,(这似乎合乎逻辑)是使用私有(private)字段,但使用getter和setter访问它们也不好,因为它破坏了首先使用私有(private)字段的意义地点。那么,我的问题是,有哪些替代方案?还是我真的必须使用带有getter和setter的私有(private)字段?这里是我的一个类和它的一些方法供引用。如果需要,我会详细说明。publicdo

c++ - std::enable_shared_from_this;公共(public)与私有(private)

我使用shared_ptr和enable_shared_from_this玩了一会儿,但遇到了一些我不太了解的东西。在我的第一次尝试中,我构建了这样的东西:classshared_test:std::enable_shared_from_this{public:voidprint(boolrecursive){if(recursive){shared_from_this()->print(false);}std::cout请注意,这个类正在私下扩展std::enable_shared_from_this。这显然有很大的不同,因为执行这样的事情:intmain(){autot(std::

c++ - 多级私有(private)和公共(public)继承 - 不寻常的访问

#includeusingnamespacestd;classuvw;classabc{private:intprivateMember;protected:intprotMember;public:intpublicMember;};classdef:privateabc{public:voiddummy_fn();};classuvw:publicdef{};voiddef::dummy_fn(){abcx;defy;uvwz;cout据我了解,在def之后从abc私下继承,protMember和publicMember在def中成为私有(private).所以,现在当uvw继承自

c++ - 是否有 "safe"static_cast 替代方案?

C++11/14中的static_cast或实现此功能的库是否有“安全”替代方案?我所说的“安全”是指强制转换应该只允许不丢失精度的强制转换。因此,从int64_t到int32_t的转换只有在数字适合int32_t时才被允许,否则会报告错误。 最佳答案 有gsl::narrownarrow//narrow(x)isstatic_cast(x)ifstatic_cast(x)==xoritthrowsnarrowing_error 关于c++-是否有"safe"static_cast替代方

c++ - 用原语 union 公共(public)初始序列

我试图更好地理解一个关于union和通用初始序列规则的相当令人惊讶的发现。常见的初始序列规则说(class.mem23): Inastandard-layoutunionwithanactivememberofstructtypeT1,itispermittedtoreadanon-staticdatamembermofanotherunionmemberofstructtypeT2providedmispartofthecommoninitialsequenceofT1andT2;thebehaviorisasifthecorrespondingmemberofT1werenomin

c++ - 公共(public)访问声明不影响成员函数指针?

我对g++(5.1版)下的访问声明有疑问。classBase{public:voiddoStuff(){}};classDerived:privateBase{public://Usingolderaccessdeclaration(withoutusing)shootsawarning//andresultsinthesamecompilationerrorusingBase::doStuff;};templatevoidexec(C*c,Funcfunc){(c->*func)();}intmain(){Derivedd;//Untilhere,everythingcompiles

c++ - 私有(private) typedef 的公共(public)使用是否可移植?

classSettings{private:typedefstd::mapOptionMap;public:typedefOptionMap::iteratoriterator;typedefOptionMap::const_iteratorconst_iterator;...};此代码可移植吗?关于它的标准规定是什么? 最佳答案 这是合法的,并且Settings::iterator和Settings::const_iterator可供Settings类的所有用户访问。C++中的访问控制纯粹应用于名称。ISO/IEC14882:20