草庐IT

dma_init_struct

全部标签

c++ - 使用 brace-init 初始化对 std::shared_ptr 的引用

这个问题在这里已经有了答案:Whycan'tIinitializeareferenceinaninitializerlistwithuniforminitialization?(3个答案)关闭8年前。我最近在编写代码,无意中发现了GCC和Clang中的一些不寻常之处。使用brace-init会在gcc中触发编译错误,而直接初始化如&b=a会起作用。下面的代码是我遇到的这种行为的一个非常简单的例子,我想知道为什么GCC不编译代码,因为没有一个shared_ptr采用initializer_list而a是一个左值#include#includeintmain(){std::shared_p

kotlin - 在 init block 中如何处理被覆盖的属性?

我试图理解为什么会抛出以下代码:openclassBase(openvalinput:String){lateinitvarderived:Stringinit{derived=input.toUpperCase()//throws!}}classSub(overridevalinput:String):Base(input)当像这样调用这段代码时:println(Sub("test").derived)它抛出异常,因为在调用toUpperCase时,input解析为null。我发现这个反直觉:我将一个非空值传递给主构造函数,但在父类(superclass)的initblock中它解析

kotlin - 在 init block 中如何处理被覆盖的属性?

我试图理解为什么会抛出以下代码:openclassBase(openvalinput:String){lateinitvarderived:Stringinit{derived=input.toUpperCase()//throws!}}classSub(overridevalinput:String):Base(input)当像这样调用这段代码时:println(Sub("test").derived)它抛出异常,因为在调用toUpperCase时,input解析为null。我发现这个反直觉:我将一个非空值传递给主构造函数,但在父类(superclass)的initblock中它解析

c++ - struct Data d = {0} 和 struct Data d = {} 有区别吗

我的代码中有两种类型的结构变量初始化。例子#include#includeusingnamespacestd;structData{intarr[5];floatx;};intmain(){structDatad={0};structDatad1={};cout我正在运行代码广告,输出为0000。请帮助我,这两种初始化之间有什么区别吗。 最佳答案 根据aggregateinitialization的规则,这里的效果是一样的,即结构的所有成员都是value-initialized(zero-initialized此处用于非类类型)。I

c++ - SDL Video Init 在 Mac OS X 10.8 上导致异常

我刚刚将我的C++游戏移植到OSX,它第一次运行时,我在尝试调用SDL_SetVideoMode时遇到以下异常。2012-09-2815:01:05.437SCRAsteroids[28595:707]*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“错误(1000)在第259行创建CGSWindow”*首先抛出调用栈:(0CoreFoundation0x00007fff8b53b716__exceptionPreprocess+1981libobjc.A.dylib0x00007fff90e30470objc_excepti

c++ - 错误 : expected unqualified-id before ‘.’ token//(struct)

我需要制作一个程序,从用户那里获取分数,然后对其进行简化。我知道该怎么做并且已经完成了大部分代码,但我一直收到此错误“错误:‘.’标记前应为不合格ID”。我已经声明了一个名为ReducedForm的结构,它包含简化的分子和分母,现在我要做的是将简化的值发送到这个结构。这是我的代码;在Rational.h中;#ifndefRATIONAL_H#defineRATIONAL_Husingnamespacestd;structReducedForm{intiSimplifiedNumerator;intiSimplifiedDenominator;};//Ihaveaclassherefor

c++ - 在 C++ 中使用 C 风格的 struct/typedef

我有一个混合使用C和C++的项目。在C头文件中,我有这样的代码:typedefstructmystruct*mystruct;structmystruct{//whateverstructneeds};为了在C++文件中使用它,我正在做:extern"C"{#include"mystruct.h"}所以你看到我正在创建一个使用相同名称的不透明指针。这在C中很好,但在C++中不行(因为要求在C中使用struct关键字实例化,但在C++中不行)。但是,在尝试编译C++代码时出现错误(声明冲突)。我认为使用extern"C"会使编译器将Cheader视为C,但它似乎仍将其用作C++。对这里发

c++ - 为什么C++中同时存在struct和class?

正如我们所知,struct和class在该语言的许多地方是可以互换的。令人困惑的是,关键字本身不一定对应于标准中使用的语言。例如,在标准草案N4567[class]/10中,APODstruct109isanon-unionclassthatisbothatrivialclassandastandard-layoutclass,andhasnonon-staticdatamembersoftypenon-PODstruct,non-PODunion(orarrayofsuchtypes).Similarly,aPODunionisaunionthatisbothatrivialclas

c++ - 提神气 : Take a rule's attribute and set it as a field of an enclosing rule's struct attribute?

像许多其他问题一样,我正在尝试使用Boost.Spirit.Qi将简单语法解析为结构树。我会尽量提炼我正在尝试做的事情,以尽可能最简单的情况。我有:structInteger{intvalue;};BOOST_FUSION_ADAPT_STRUCT(Integer,(int,value))稍后,在语法结构中,我有以下成员变量:qi::ruleinteger;我用它来定义integer=qi::int_;但是,当我尝试实际解析一个整数时,使用qi::phrase_parse(iter,end,g,space,myInteger);myInteger.value在成功解析后始终未初始化。同

c++ - 使用 ATOMIC_FLAG_INIT 和 std::atomic_flag::clear 有什么区别

下面两段代码是否相同:std::atomic_flaglock=ATOMIC_FLAG_INIT;和std::atomic_flaglock;lock.clear();似乎第二个可以允许点击几下锁定处于未知状态第一个代码片段是否始终具有已知状态? 最佳答案 ATOMIC_FLAG_INIT是一个实现定义的宏,保证可以像您发布的那样在表达式中工作。例如,它可以方便地初始化您可能在命名空间范围内定义的atomic_flag。它还保证标志将被清除,并且如果标志本身具有静态存储持续时间,则初始化也将是静态的。第二组语句是初始化,然后清除标志