草庐IT

C++标准

全部标签

c++ - pthread-win32 扩展 sem_post_multiple

我目前正在围绕pthreads构建一个薄的C++包装器供内部使用。Windows和QNX都是目标,幸运的是pthreads-win32端口似乎工作得很好,而QNX符合我们实际目的的POSIX。现在,在实现信号量时,我点击了函数sem_post_multiple(sem_t*,int)这显然只在pthreads-win32上可用,但在QNX中缺失。顾名思义,该函数应该通过作为第二个参数给出的计数来增加信号量。据我所知,该函数既不是POSIX1b也不是POSIX1c的一部分。虽然目前对上述功能没有要求,但我仍然想知道为什么pthreads-win32提供该功能以及它是否有用。我可以尝试使用

c++ - 带有标准容器的 std::shared_ptr

我有一个容器shared_ptrs和我将这些对象交给WindowsAPI,稍后我使用原始ptr获得回调。我要找对shared_ptr事后。这可以用shared_ptr干净地完成吗?(不使用shared_from_this())。非常基本的例子:classCFoo{};typedefstd::shared_ptrCFooPtr;typedefstd::setCFooSet;externCFooSetm_gSet;voidSomeWindowsCallBack(CFoo*pRawPtr){m_gSet.erase(pRawPtr);}我知道这可以用intrusive_ptr来完成很容易,但

c++ - C++ 的自动编码标准违规检测

我想做的是让我的CI服务器运行一个工具来扫描代码,并根据定义的指南检测存在的任何编码标准违规行为。我将使用输出来提示构建“失败”,直到问题得到解决。我遇到的问题是,我的工程师将大部分时间花在代码审查上,寻找违反编码标准的行为,而不是寻找错误(发现的缺陷中有70-76%与标准相关)。我的理论是,如果他们不需要寻找违反标准的行为,他们将根据他们正在寻找的内容进行分支。有这样的东西吗? 最佳答案 你要的叫静态分析其中2个是免费的:cppcheck—Open-sourcetoolthatchecksforseveraltypesoferro

c++ - 读取 mex 文件中的结构数据时发生奇怪的事情

我刚才被一个很奇怪的mex错误搞糊涂了。..将我的问题归结为核心,我们最终得到以下简单的mex代码。它只显示给定的结构字段是否为空...#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){intnumElements=mxGetNumberOfElements(prhs[0]);intnumFields=mxGetNumberOfFields(prhs[0]);mxArray*tmpData;constchar*tmpName;for(intstructIdx=0;stru

c++ - 我应该如何使用新的 C++11 标准进行 C++ 编程?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我已经使用C++编程一段时间了,我习惯于做如下事情:vectorvi;for(vector::const_iteratorit=vi.begin();it!=vi.end();++it){//dosomethingwithit}但是新的C++标准C++11引入了auto关键字,所以我可以这样写:vectorvi;for(autoit:vi)//dosom

c++ - CreateFile 打开在另一个终端 session 中创建的 MS-DOS 设备

我有一个(某种过滤器)驱动程序,它应该与用户模式组件通信。它通过调用IoCreateDevice创建一个设备对象,然后通过IoCreateSymbolicLink为它创建一个所谓的MS-DOS符号链接(symboliclink),使用户可以访问它-模式代码(通过CreateFile)。这或多或少是一种标准技术。驱动程序创建一个形式为\DosDevices\mydevicename的符号链接(symboliclink),而用户模式代码打开一个名为\\.\mydevicename的文件。现在,当驱动程序在终端服务器session的上下文中创build备时,问题就开始了。创建的符号链接(sy

【Midjourney】关于标准模型的几个按钮都有什么用

当用户在MidjourneyBot所在的服务发送/settings命令时就能调出设置窗口,本文将介绍该窗口中的各个按钮都有什么作用。1.RAWMode依照官方的描述来看V5.2模型似乎带有自动优化功能,会对用户输入的关键词空白描述进行补全和优化,以便修复所生成图像的模糊和空白内容,用户可以在设置中手动关闭优化,这样将会使用输入的原始关键词生成图片,好处是能对生成内容进行更精确的控制,坏处是需要输入更多、更精确的关键词填补空缺。以下是官方给出的对照图片,左侧是RAWMode按钮为灰色(修复开启)状态的图片,右侧是按钮为绿色(修复关闭)状态的图片,可以看到右侧的图片并没有自动添加背景颜色,也没有颜

c++ - 有效的 header 名称

我无法正确理解它们在以下文章中的含义:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1566.htmItisinterestingtonotethatC89explicitlyallowedonlylettersinheaderandincludefilenames.C++addedunderscores,andC99addeddigits.Probablybothstandardsshouldallowboth.我在所有C和C++标准中发现了以下语句:ISO/IEC9899:19906.1.7HeadernamesS

c++ - 函数地址和函数地址的地址之间没有区别吗?

这个问题在这里已经有了答案:Whydofunctionpointerdefinitionsworkwithanynumberofampersands'&'orasterisks'*'?(5个答案)Howdoesdereferencingofafunctionpointerhappen?(5个答案)关闭9年前。voidf(){}voidtest(){autofn_1=f;autofn_2=&f;assert(fn_1==fn_2);//OKfn_1();//OKfn_2();//OK(*fn_1)();//OK(*fn_2)();//OK(**fn_1)();//OK(**fn_2)()

c++ - 标准库头层次结构

跟进我对这个问题的回答:SIGSEGVondeclaration在这个问题中,提问者遇到了一些简单代码的段错误问题。事实证明,它甚至没有为我和其他人编译。GCC(4.8.1)由于重新声明名称为bsearch的变量而出错,该名称恰好与std中的函数名称相同。这导致了冲突,因为代码还使用了usingnamespacestd;。由于提问者接受了我的回答,我猜这与运行时错误有某种关系(虽然很奇怪)。然而,提问者说代码可以在代码块上正常编译,其他人也证实了这一点。bsearch应该在cstdlib中定义,但代码中没有包含它。事实证明,gcc包含cstdlib,如果iostream无论如何都包含在