草庐IT

c++ - 推导非类型模板参数 Unsigned Int/size_t

我正在尝试推断一个非类型模板参数。#includetemplatevoidgetsize(unsignedints){std::cout(4);//orevengetsize();//Isthispossible?}但是我得到了错误:deduce_szie_t.cpp:Infunction'intmain()':deduce_szie_t.cpp:9:15:error:nomatchingfunctionforcallto'getsize(unsignedint)'deduce_szie_t.cpp:9:15:note:candidateis:deduce_szie_t.cpp:4:6

c++ - 函数重载的工作原理

intadd(inta,intb){cout在上面的代码中,第一个函数调用函数add(int,int),第二个函数调用函数add(int,char)。第三个函数调用的结果应该是错误,但它调用了函数add(int,char)。任何人都可以解释为什么。 最佳答案 有隐式转换char到int。更多信息:http://www.petebecker.com/js/js200004.html隐式转换是:http://en.cppreference.com/w/cpp/language/implicit_cast

c++ - 常量 QList<int> 警告 = QList<int>() << 0; gcc 4.7.2 的段错误

因此主题行中提到的代码会导致Qt4.8.3和gcc4.7.2出现段错误这在.cpp文件中的任何类/结构之外,适用于gcc4.4constQListwarnings=QList()Traces给出了这两个提示:__do_global_ctors()__static_initialization_and_destruction_0所以当它插入后面的列表时,似乎“警告”还不可用。如果我把它改成这样,就可以与4.7.2一起工作:globalscope:QListwarnings;这是一些函数:warnings=QList()我想知道为什么会这样?编辑:我想我最初从我的问题中删掉了太多东西,但是

c++ - 具有 C++ 重载函数的 SWIG 类型映射

我有一个这样的函数定义:voidFoo(intszData,intData[]);我有一个像这样的SWIG类型映射:%typemap(in)(intszData,intData[]){inti;if(!PyTuple_Check($input)){PyErr_SetString(PyExc_TypeError,"Expectingatupleforthisparameter");$1=0;}else$1=PyTuple_Size($input);$2=(int*)malloc(($1+1)*sizeof(int));for(i=0;i类型映射允许我像这样从Python调用Foo():富

c++ - ROMable(但复杂)的(ROMable)对象数组 - 如何解决?

我正在为MCU(ARMCortex-M3)开发固件。这些设备没有很多RAM,因此无论如何您都应该尝试将数据放在常量内存(闪存)中。问题是这样的:设备必须提供可由接口(interface)(MODBUS)读取的“寄存器”,因此运算符(operator)读取“地址”10并获得一些数字,他/她“写入”到“地址”“101它会引起一些Action等。将有数百个这些“地址”并且访问它们会引起一些Action-例如从1-10读取导致传感器1到10上的温度测量,从11-读取20导致读取一些校准值,写入这些地址导致这些校准值存储在非volatile存储器等中-会有很多不同的功能(;目前我是这样实现的:有

c++ - 避免在 unordered_map 插入中进行额外处理

我有一个std::unordered_map,我希望两者都递增std::pair中的第一个值,通过key散列>,并创建对key的引用。例如:std::unordered_map>hash;hash[key].first++;autoit(hash.find(key));int&my_ref(it->first);我可以不使用[]运算符,而是使用insert()插入数据,但我会分配一对,即使它是稍后释放,因为hash可能已经有key——虽然不确定。让它更清楚://If"key"isalreadyinserted,thepair(s)willbeallocated//andthendeal

c++ - vector<int> 上的 memset

根据MarkRansomsanswer关于使用memset,我在vector上使用memset为所有元素赋值。memset(&match_begin[0],0xff,sizeof(match_begin[0])*match_begin.size());它确实比std::fill有了显着的性能提升它工作正常(g++4.3.2、64位linux)。这段代码是否安全,如std::vector实现是否始终保证数据的内存分配是连续的?是否有可能在STL库的future(或不同的)实现中,这可能会改变并在以后破坏我的代码? 最佳答案 would

c++ - 依赖于模板参数的成员变量和构造函数

在C++11中,我希望在类中有一个成员变量,并且只有在选择默认模板值时才需要一个用于初始化的构造函数(当然,仅适用于支持的类型,如int)。实现此目标的推荐方法是什么(允许提升)?类似于:templatestructC{C(){}//onlyavailableif_x!=-1C(intx):x(x){}//onlyavailableif_x==-1//moremethodsthatarecommonforall_xandreferto_x/xprivate:intx;//onlyavailableif_x==-1//moremembersthatarecommonforall_x};或

c++ - YUV 图像中的像素

我正在使用opencv来实现对象跟踪。我读到YUV图像比RGB图像更好用。我的问题是,尽管我花了很多时间阅读笔记,但我还是无法理解YUV格式。Y是亮度,我认为它是根据R、G、B分量的组合计算得出的。我的主要问题是如何访问和操作YUV图像格式的像素。在RGB格式中,它很容易访问组件,因此可以使用像这样的简单操作来更改它src.at(j,i).val[0]=0;forexample但是在YUV中却不是这样。我需要帮助来访问和更改YUV图像中的像素值。例如,如果RGB中的像素是红色,那么我只想保留YUV中的相应像素,其余的将被删除。请帮我解决这个问题。 最佳答案

c++ - 陷入无限循环

在C++中,为了处理错误的输入(比如当程序要求输入一个整数但你输入了一个字符时)它应该能够做一些事情然后循环重复输入。当您在需要整数时输入字符时,我的循环会无限迭代,反之亦然:#includeintmain(){while(cout>num)){cin.sync();cin.clear();cout我应该怎么做才能让程序再次提示输入新的内容? 最佳答案 如果cin>>num失败需要从流中删除无效输入。我建议使用ignore而不是sync来完成这个。原因是sync不保证删除标准库的所有实现中的剩余输入。#include#include