c++ 相关问题

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

使用 Emscripten/embind 从 C++ 中通过 wait 调用 javascript

一个像这样的 JavaScript 函数: 异步函数 getData(){ //做某事并返回一个字符串 } my_module.set_js_func(getData); 我的 c++ emscripten 代码如下: //绑定C++函数

回答 1 投票 0

为什么我会得到这些有符号/无符号整数溢出的结果?

我刚刚开始自学 C++,并开始学习整数溢出。出于好奇,我编写了一些测试,只是为了看看某些整数值会发生什么。 这是我的程序: #

回答 4 投票 0

我怎样才能乘以非常大的数字c ++ [重复]

我有以下代码 整数 i、a、z; 我=2343243443; a = 5464354324324324; z = i * a; 计算<< z << endl; When these are multiplied it gives me -1431223188 which is not the ...

回答 10 投票 0

C++ 没有“splashkit.h”头文件的文件或目录

我一直在尝试修复我的一个程序的一些构建问题,并且似乎遇到了与使用头文件构建我的程序有关的错误。 每当我尝试包含“splas...

回答 1 投票 0

C++ 的 GMP:`auto` 带来更多麻烦

这里有更多关于 GMP C++ 类接口的奇怪行为,与 C++ auto 关键字相关。我之前的问题也是关于这个关键字的,它的删除解决了我的问题。然而它是

回答 1 投票 0

当AddressSanitizer打印错误,但没有回溯,并且程序退出代码仍然是0时,这意味着什么?

我在 macOS 上使用 ASAN 通常会成功,但目前我遇到的问题是我的程序有时会终止并打印 ASAN 错误,但其他情况正常。我没有发现任何痕迹...

回答 1 投票 0

MSVC++ 警告标志的 Wextra 替代方案

使用 gcc 和 clang,我通常使用 -Wall -Wextra 警告标志。 Visual C++ 2010(以及更新版本,如果存在差异)的哪些命令行开关会产生大约相同的结果? 这个 MSDN 做...

回答 1 投票 0

参数类型void*&*是什么意思,有什么用?

我正在查看用 C++ 编写的 API,我对以下参数类型的含义感到困惑: 无效*&*数据 这是否意味着用户将传递对 void 指针的引用?如果...

回答 3 投票 0

“for”循环内的 C++ 线程打印错误的值

我试图理解 C++ 中的多线程,但我陷入了这个问题:如果我在 for 循环中启动线程,它们会打印错误的值。这是代码: #包括 #包括 我试图理解 C++ 中的多线程,但我陷入了这个问题:如果我在 for 循环中启动线程,它们会打印错误的值。这是代码: #include <iostream> #include <list> #include <thread> void print_id(int id){ printf("Hello from thread %d\n", id); } int main() { int n=5; std::list<std::thread> threads={}; for(int i=0; i<n; i++ ){ threads.emplace_back(std::thread([&](){ print_id(i); })); } for(auto& t: threads){ t.join(); } return 0; } 我期望打印出值 0,1,2,3,4,但我经常得到相同的值两次。这是输出: Hello from thread 2 Hello from thread 3 Hello from thread 3 Hello from thread 4 Hello from thread 5 我错过了什么? [&]语法导致i被通过引用捕获。因此,当线程运行时,i 通常会比您预期的更进一步。更严重的是,如果 i 在线程运行之前超出范围,则代码的行为是 未定义。 按值捕获 i - 即 std::thread([i](){ print_id(i); }) 是解决方案。 两个问题: 您无法控制线程何时运行,这意味着 lambda 中变量i的值可能不是您所期望的。 变量i对于循环来说是局部的,并且仅对于循环来说是局部的。如果循环在一个或多个线程运行之前完成,这些线程将拥有对生命周期已结束的变量的无效引用。 您可以通过捕获变量 i 按值而不是按引用来非常简单地解决这两个问题。这意味着每个线程都会有该值的副本,并且该副本将为每个线程唯一制作。 另一件事: 不要等到总是有一个有序的序列:0,1,2,3,...,因为多线程执行模式有一个特殊性:不确定性。 不确定性意味着在相同条件下执行同一个程序会给出不同的结果。 这是因为操作系统根据多个参数对一次执行和另一次执行的线程进行不同的调度:CPU 负载、其他进程的优先级、可能的系统中断等。 您的示例仅包含五个线程,因此很简单。尝试增加线程数量,例如在处理函数中放置睡眠。您会发现一次执行的结果可能与另一次执行的结果不同。 使用 c++17 你可以做到: void foo(int param) { //something } main() { std::vector<std::thread> threadList; for (int i = 0; i < 100; i++) { threadList.push_back( std::thread(foo, 2) ); } for (auto& thread : threadList) { thread.join(); } }

回答 4 投票 0

mdspan 运算符 [] 无法在 Visual Studio 中编译

https://godbolt.org/z/f4dc83fr3 std::向量 v{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; 自动 ms2 = std::mdspan(v.data(), 2, 6); ms2[0, 0] = 3; 错误 C2676:二进制 '[': 'std::mdspan<_Ty,std::ext...

回答 1 投票 0

我可以在WinAPI项目中添加俄语字体吗

我在自己的WinAPI项目上工作并使用API语言C/C++的ANSI版本,但是当我在使用非俄语版本Windows的计算机上运行程序时遇到了这个问题。我看不懂

回答 3 投票 0

如何避免在接受不同宽度字符/字符串的函数中重复字符串文字?

我经常需要在 C++ 中创建字符串操作函数。我的 API 倾向于编写为接受 std::basic_string (有效),但我也想接受 std::basic_string_view<...

回答 1 投票 0

避免频率缩放以提高 SIMD FMA 性能

以下程序在运行不同次数的迭代时显示出非常可变的性能。原因可能是什么?如何获得一致的测量结果? 该程序描述了最大

回答 1 投票 0

C++ 长整数乘法导致意外输出

我有一个简单的 C++ 程序,它将两个 long int 变量相乘并打印结果。这是代码: #包括 使用命名空间 std; int main() { 长整型 a = 100000; ...

回答 1 投票 0

将 Boost 添加到 Qt 创建者项目时出现问题

我正在尝试在 Qt Creator 6.4.1(msvc2019_64)(CMake 3.29.3) 中使用 Boost.Test cmake.txt cmake_minimum_required(版本3.5) 项目(DBSort 版本 0.1 语言 CXX) 设置(CMAKE_AUTOUIC ON) 设置(

回答 1 投票 0

如何使用 decltype 从指向数据类型的指针获取数据类型?

decltype 运算符与 type* 一起使用时返回 type&。有没有办法只获取类型。 整数*我; decltype(*i) l; // int& l; 进入; // decltype(???) o; 我只是想知道是否...

回答 1 投票 0

在C++中从中心按像素绘制实心圆?

我想从圆心开始逐行(例如顺时针方向)、逐像素地绘制圆。但避免重绘像素(这很慢)。 想象一下,这就像更新的“雷达”......

回答 3 投票 0

基抽象类公开了 Childs 使用不同数量的参数重写的虚函数

我有一些课程: 类变换{ 民众: 虚拟自动运算符()() const -> void = 0; }; 类 FourierTransform :公共变换{ 民众: 虚拟自动运算符()(type1&a...

回答 1 投票 0

使用带有列表初始化的指定初始化器时,类模板参数推导失败

在初始化结构模板实例时,使用大括号 init 语法和指定的初始值设定项时,编译器(GCC 和 Clang)会出错。 这里: 模板 是...

回答 1 投票 0

尝试复制 std::complex 行为,是标准库在骗我还是我错过了什么?

我正在尝试将 std::complex 编写为 HLSL 库。为此,我开始从算术运算符开始实现最基本的功能。对于有限的数字,一切都符合预期。 ...

回答 1 投票 0

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