草庐IT

initializer-list

全部标签

.net - native C++ 应用程序的 list ?

我不能说我是什么是.NetAssemblyManifest的专家,但我认为我对它有或多或少一致的理解。然而,在编译我的nativeC++应用程序MSVC时EmbeddingManifest...的事实不符合我的理解。list与nativeC++应用程序有什么关系?谢谢。 最佳答案 list是附加到可执行文件的附加元数据(嵌入到资源中,或作为.manifest文件独立分发)——它们用于并行程序集或UAC兼容性设置等。看看manifestfilereference在MSDN上。 关于.net

c++ - 乱序初始化成员 - 这样可以吗?

来自对thisanswer的评论:类成员按照声明的顺序进行初始化。按照这个逻辑,下面的构造函数应该调用未定义的行为:structFoo{Bara;Barb;Foo(Barc):a(b=c){}};显然,我们在a初始化之前先分配给b。分配给未初始化的对象应该是UB。代码与Bar=int一起“工作”并不奇怪,但是如果我使Bar成为带有构造函数的重类,我会看到b确实在a之前初始化。(为了更疯狂,我们甚至可以说Foo(Barc,Bard):a(b=c),b(d){},仍然没有警告。)然而GCC4.6.1并未对此发出警告。这是可接受的、定义明确的行为,还是完全错误的?

模板内的 C++ 初始值设定项列表

我想更多地了解C++11,所以我编写了我所知道的最简单的initializer_list测试,但在模板内部,这是一个“免费”函数,每当我编译它时我都会收到这个错误(用于漂亮格式的clang++)/home/alex/repo/mine/mlcppl/test/utiltest1.cc:16:3:error:nomatchingfunctionforcallto'makevec'mlcppl::makevec({"alex","herrmann"});代码如下:namespacemlcppl{templatevectormakevec(initializer_listinitlist){

C++ 2011 : good syntax to initialize an array in a constructor?

这里我有一个示例类:templateclassMyClass{public:MyClass();~MyClass();protected:T_data[SIZE];};templateMyClass::MyClass()://_data()OR_data({})OR_data{}OR...{;}在默认构造函数中将整个数组初始化为0的正确C++2011语法是什么?非常感谢。 最佳答案 统一初始化语法运行良好:MyClass():_data{}{} 关于C++2011:goodsyntaxt

c++ - 为什么要在 Py_Initialize() 之前调用 PyImport_AppendInittab()?

根据documentation,PyImport_AppendInittab“应该在Py_Initialize()之前调用。”没有解释为什么会这样,忽略此建议会产生一个有效的应用程序。那么,既然可以,那么在什么情况下会不行呢? 最佳答案 因为文档是这么说的;违反API可能会在今天产生一个可用的应用程序,但明天就不会。您可能会遇到的几个问题:sys.builtin_module_names在Py_Initialize中初始化,因此它不会包含您的模块PyImport_AppendInittab不获取任何锁,因此如果您在多线程应用程序中的

c++ - 使用 TBB 的并行性——我们的 list 中应该包含什么?

直到最近,并行编程的前景才引起了我的注意。从那时起,我使用了各种并行编程库。也许我的第一站是英特尔线程构建模块(TBB)。但是,经常成为瓶颈的是由于舍入等因素以及这些程序在不同处理器架构中的不可预测行为而导致的错误。下面是一段代码,用于计算两组值的PIL逊相关系数。它采用了TBB的非常基本的并行模式——*parallel_for*和*parallel_reduce*://AprogrammetocalculatePearsonsCorrelationcoefficient#include#include#include#include#include#include#include#i

c++ - forward_list::splice_after( const_iterator pos, forward_list& other, const_iterator i ) 功能

我正在阅读有关此功能工作方式的不同解释。cplusplus.com说这个函数应该“直接在i之后移动元素”。然而cppreference.com表示它拼接元素ATi。MSvisualstudio同意cplusplus.com。但是,实际上正确的行为是什么?我倾向于认为“在i之后”移动更合乎逻辑(&不需要N时间来找到前面的节点)。(PS:没有forward-list标签?) 最佳答案 23.3.4.6voidsplice_after(const_iteratorposition,forward_list&x,const_iterator

c++ - 为什么我收到错误 : initializing argument 1 of 'Item::Item(int)' [-fpermissive] in Eclipse when I try to compile my C++ code?

我是C++的新手,在盯着它看了太久之后终于放弃了尝试编译它。编译器似乎出于某种原因拒绝了头文件中的构造函数原型(prototype)......我无法弄清楚它有什么问题。项目.h:#ifndefITEM_H_#defineITEM_H_classItem{public:Item(int);//ThislineiswhatEclipsekeepsflaggingupwiththeerrorinthetitlevirtual~Item();Item*getNextPtr();intgetValue();voidsetNextPtr(Item*);};#endif/*ITEM_H_*/在我的

C++ fork()——创建 "list"进程

我有一个程序可以“一个一个”地创建新进程。是否可以更改此代码以创建一个进程“列表”——即子1是子2的父,子2是子3的父,等等?#include#include#include#include#include#include"err.h"usingnamespacestd;intmain(){pid_tpid;inti;cout 最佳答案 如果你想保持循环以便动态设置fork树的深度,//SetDEPTHtodesiredvalue#defineDEPTH4intmain(){pid_tpid;inti;cout输出Myprocess

c++ - clang 和 gcc 中的这个警告似乎不正确

我相信BjarneStroutrup的新书TCPL第4版第66页中的示例有一个小错误,因为classVector_container没有std::initializer_list构造函数。错误信息here证实了这一点。#includeclassVector{double*elem;intsz;public:Vector(ints):elem{newdouble[s]},sz{s}{for(inti=0;i!=sz;++i)elem[i]=0;}Vector(std::initializer_listlst):elem{newdouble[lst.size()]},sz(lst.size