c++ 相关问题

C ++是一种通用编程语言。它最初被设计为C的扩展,并保持类似的语法,但现在是一种完全不同的语言。使用此标记来查询有关使用C ++编译器编译的代码的问题。对特定标准版本[C ++ 11],[C ++ 17]等相关问题使用版本特定标记。

imread 无法在 Opencv 中工作

我正在尝试使用OpenCV2.2中的imread函数。 我的代码很简单。 cv::Mat host= imread("1.bmp", CV_LOAD_IMAGE_GRAYSCALE); 之后,主矩阵被零指针填充......

回答 15 投票 0

从文件映射中获取 c_char_p 值会导致 python 程序崩溃

我正在尝试创建一个程序,该程序将从 C++ 应用程序中获取字符串(const char[]),使用 windows.h 创建一个地图文件对象,而单独启动的 python 脚本将读取该地图文件

回答 1 投票 0

如果底层指针过期,std::atomic<std::weak_ptr<>>::compare_exchange_* 是否能保证正常工作?

我有一段代码,其中 std::atomic> 如果底层弱指针过期,其行为不会像我预期的那样: std::原子 我有一段代码,如果底层弱指针过期,std::atomic<std::weak_ptr<T>>的行为不会像我预期的那样: std::atomic<std::weak_ptr<Widget>> ptrAtomicWidget = ...; std::shared_ptr<Widget> ptrWidget = ptrAtomicWidget.load().lock(); while (ptrWidget == nullptr) { ptrWidget = std::make_shared<Widget>(); std::weak_ptr<Widget> ptrExpected; // <--- nullptr std::weak_ptr<Widget> ptrDesired = ptrWidget; // Problem Version: Causes an infinite loop when ptrExpected is expired if (!ptrAtomicWidget.compare_exchange_weak(ptrExpected, ptrDesired)) { ptrWidget = ptrExpected().lock(); } // Potential Repair Version: *seems* to work (could alternately move declaration of ptrExpected above while loop) if (!ptrAtomicWidget.compare_exchange_weak(ptrExpected, ptrDesired) && ptrExpected.expired() && !ptrAtomicWidget.compare_exchange_weak(ptrExpected, ptrDesired)) { ptrWidget = ptrExpected().lock(); } } 我遇到的问题涉及循环体“潜在修复版本”的“似乎有效”部分。修复需要两个不同的过期的weak_ptr在compare_exchange期间可靠地相互比较相等。 std::weak_ptr 没有相等运算符,因此其文档对此保持沉默。我能找到的关于 std::atomic<> 专业化的文档(例如 CPPReference)都没有描述指针过期时比较交换的行为。我不知道它是否恰好适用于我的特定编译器,或者 C++ 标准是否保证它。有人知道它是否能保证按标准工作吗? 您误解了弱指针 compare_exchange 何时成功的条件。 根据atomic<weak_ptr<T>>::compare_exchange_weak的规范: 效果:如果p等价于expected,则将desired分配给p,并且具有与success的值对应的同步语义,否则将p分配给expected并且具有同步语义对应于failure的值。 当两个指针等价时很重要,这也有解释: 备注:如果两个 weak_ptr 对象存储相同的指针值并且共享所有权或均为空,则它们是等效的。 弱形式可能会虚假失败。 请参阅[原子.类型.操作]。 初始化为 ptrExpected 的 nullptr 不存储与 ptrAtomicWidget 相同的指针值,因此第一次尝试比较交换总是会失败。 第二个“解决方法循环”“有效”,因为当第一次比较交换不可避免地失败时,ptrAtomicWidget的当前值被加载到ptrExpected中,这使得ptrDesired可以在第二次尝试时替换它。 对我来说,似乎 && ptrExpected.expired() 可以被删除,因为只有在 ptrWidget == nullptr 时你才会进入循环,这意味着 ptrAtomicWidget 为空或过期。

回答 1 投票 0

H264 的 FPS 降低

有一个USB摄像头以30fps的频率发送H264帧,分辨率为1920x1080,GOP大小30或60(每秒1或2个I帧,具体取决于摄像头),这需要吞吐量...

回答 1 投票 0

创建扩展名为 .inl 的静态文件库

我正在尝试创建扩展名为 .inl 的静态文件库,但失败了。如果我将扩展名更改为 .cpp 那么它就会构建。 CMakeLists.txt cmake_minimum_required(版本3.0.0) 项目(

回答 1 投票 0

程序总是进入第一个if语句[关闭]

无论我输入什么字母,它都会给我第一个选项,我正在寻找错误,但我是新人,到目前为止已经学习了3天,所以老实说我没有看到它,我也不知道我做错了什么。 万一

c++
回答 1 投票 0

我正在学习C++,有人知道我的代码有什么问题吗?它只回复第一个选项(如果)

无论我输入什么字母,它都会给我第一个选项,我正在寻找错误,但我是新人,到目前为止已经学习了 3 天,所以我真的没有看到它,我不知道我做错了什么,但我希望它

回答 1 投票 0

快速排序算法的问题

#包括 使用命名空间 std; int 分区(向量& vec, int low, int high) { int i = 低 - 1; int j = 高 + 1; int 枢轴 = vec[高]; 而 (1...

c++
回答 1 投票 0

为什么 ShellExecuteA 有时无法完成某个操作?

我正在使用 RAD Studio C++ Builder。 我还没有使用他们的 clang 编译器(长话短说),所以我的代码不能使用 C++17 函数。 (由于这是一个标准的 VCL 应用程序,我相信 CoInitialize 已运行

回答 1 投票 0

/usr/lib/libc_nonshared.a(fstat64.oS) 中的 ld 隐藏符号“fstat64”被 DSO 引用

我正在尝试编译一些代码,但出现了错误,我不确定如何处理。 /usr/bin/ld: nmtest: /usr/lib/libc_nonshared.a(fstat64.oS) 中的隐藏符号 `fstat64' 是

回答 2 投票 0

切换四元数的坐标系

我得到了前向左上(FLU)坐标系中对象 [w, x, y, z] 的四元数数据,我想将其转换为前向右下(FRD)坐标系中的四元数数据系统。

回答 1 投票 0

从WMI获取RAM类型详细描述

我使用以下命令: wmic path Win32_PhysicalMemory get TypeDetail 来获取类型详细信息值。它返回:16512。来自 Microsoft 文档:https://learn.microsoft.com/en-us/windows/win32/

回答 1 投票 0

在Q_PROPERTY中使用QVector并访问每个数据

我想更新 weekKm 和 weekTime,以便在更改 m_weekKmAndTime 中的任何值时自动更新,但我正在为此苦苦挣扎。我想像 DbModel.weekKm(0), ...

回答 1 投票 0

Ubuntu 上的 Jupyter 的 Cling 内核

我按照 https://github.com/root-mirror/cling#jupyter 上给出的说明在我的笔记本电脑上使用 Ubuntu 15.04 构建了 Cling,因为我想为 Jupyter 使用 Cling 内核。我安装了 Jupyt...

回答 4 投票 0

CMake - 共享库 - 缺少 IDE 支持

我正在研究一个项目结构,该结构发布于: https://github.com/veritacodex/IB.Cpp.Api.Client 您可能已经见过类似的结构: 有一个图书馆的文件夹,在...

回答 1 投票 0

决定模板类是包含 2 个变量还是仅包含 1 个变量

我想要一个嵌套类 B,其行为如下: 如果 T 为 void,则 B 只有一个成员字段 sz 并且 sizeof(B) == sizeof(sz) 否则,B 有一个成员字段 sz 并以某种方式获得 T #我...

回答 1 投票 0

在 C++ 中使用内联汇编计算 n 阶矩阵的元素和的问题

问题是我有一个条件,应该将一个元素添加到总和中。如果元素的索引之和( j+i>4 ),则将该元素添加到总和中;否则,忽略它。 我...

回答 1 投票 0

检查 --ffast-math 下的 nan

假设(同时避免彻夜讨论原因)我使用 -ffast-math 并且我的程序执行十次牛顿迭代。它们要么收敛,要么到那时就会出现 NaN。 这就是我...

回答 1 投票 0

为什么 `std::string_view` 不可修改?

我开始用 std::string_view 进行实验。 它有一个非常丑陋的特点。你不能说: std::string_view 和 std::string_view 就像很棒的 std::span 一样。 所以,你不能...

回答 1 投票 0

C++ 中 64 位整数的按位(Bitshift)运算

我正在尝试处理位板,这需要我在 64 位无符号整数中设置特定位。为了设置位 i,我对有问题的位板执行按位或运算,左移 nu...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.