C ++ 17是2017年批准的C ++标准的名称。它基于以前的C ++ 14标准,改进了核心语言和标准库,并添加了一些新的语言功能。
2012 使用 IBM MQ 类 C++ 时出现 MQRC_ENVIRONMENT_ERROR
我正在使用适用于 Linux 的 IBM MQ(版本 9.3.0.16)可再发行库在队列管理器和我的示例 C++ 应用程序之间设置通信通道。我的目标是异步获取消息...
我的函子定义如下- 结构体f1{ KOKKOS_INLINE_FUNCTION void 运算符()() const{ printf("函子 1 ”); }; }; 结构体f2{ KOKKOS_INLINE_FUNCTION ...
说我有 [[nodiscard]] int foo () { 返回0; } int 主函数 () { 富(); } 然后 错误:忽略使用属性 nodiscard 声明的“int foo()”的返回值 [-Werror=unused-result] 布...
[虚幻 5.4]Gauntlet 测试无法在程序集中找到“MyTest”测试
我正在尝试使用 Gauntlet 进行简单的测试,例如 helloworld 类型的方法,我已经设置了 C++ testcontroller .cpp 和 .h 以及 HelloworldTest.cs 还在我的项目的 Build.cs 文件中添加了 Gauntlet...
我正在学习在cpp中编写lamda表达式,下面是使用Visual Studio 2022 Windows的代码 #包括 使用命名空间 std; int main() { 整数 k = 98; 整数 l = 23; 自动LM...
将带有捕获的 lambda 传递到另一个 lambda 中,导致捕获总是发生(?)
情况 lambda h() 始终访问非 constexpr 变量 k。 如果我使用 if constexpr(false){h();} , k 将永远不会被捕获。 但是如果我将 h() 传递给另一个函数 g,例如 g(h),k 将始终...
考虑以下场景: 线程1 互斥锁Lk1_ gcondVar_.wait(mutexLk1); 线程2 互斥Lk2_ gcondVar_.wait(mutexLk2); 线程3 条件变量_ gcondVar_.notify_all(); 我观察到的是,notify_all() d...
std::get_if (std::variant) 通过指针而不是通过值/&/const& 获取变体参数是否有任何实际原因?
我从未使用过 std::get_if,并且由于它的名称与 std::get 不同,我看不出它的参数应该是指针的原因(而 std::get 有一个按引用范围)。 ``如果是n...
Android NDK:C++17 中 std::execution 出现编译错误
我正在尝试使用依赖于 C++17 功能 std::execution 的 Android NDK 编译 C++ 程序。 在构建过程中,我遇到以下错误: 错误:
我正在使用 Visual Studio 运行一个简单的 SFML 代码,该代码呈现一个圆圈并播放音频。我试图在渲染发生之前和渲染窗口关闭之后播放音频, 但为了...
使用 std::enable_if<> 来避免模棱两可的模板化二元运算符重载
我想使用 std::enable_if<> 来避免 MyClass*otherT 与 otherT*MyClass 与 MyClassT*MyClassT 中的歧义重载运算符*(T,U)(或重新定义) 可以说 MyClass 声明是: 寺庙...
请告诉我在这种情况下我是否正确定义了 noexcept 表达式的条件? 类计划主机端口 { 民众: 使用 value_type = std::string; 方案_主机_PO...
我怎样才能做到这一点?目前出现以下编译错误 错误:成员指针引用非类类型“Test *” 6 | if constexpr (std::is_same 我怎样才能做到这一点?目前出现以下编译错误 error: member pointer refers into non-class type 'Test *' 6 | if constexpr (std::is_same<MethodT, void (ObjectT::*)(int)>::value) #include <type_traits> template<typename MethodT, typename ObjectT> void RegisterCallback(MethodT method, ObjectT object) { if constexpr (std::is_same<MethodT, void (ObjectT::*)(int)>::value) { // do something } if constexpr (std::is_same<MethodT, void (ObjectT::*)(int, float)>::value) { // do something else } } int main() { struct Test { void HandleCallbackWithInt(int) {} void HandleCallbackWithIntFloat(int, float) {} } receiver; RegisterCallback(&Test::HandleCallbackWithInt, &receiver); return 0; } 当您将 &receiver 传递给 ObjectT object 时,ObjectT 会被推导为 Test*,并且 ObjectT::* 对于指针类型 ObjectT 无效。你可能想要 template<typename MethodT, typename ObjectT> void RegisterCallback(MethodT method, ObjectT* object) // ------------------------------------------^ 和 ObjectT 将被推导为 Test。
在问题 Idiom for Initializing an std::array using a Generator Function Take the Index? 中,它基本上询问如何初始化任意类型的数组,而这不一定是
使用采用索引的生成器函数初始化 std::array 的惯用语?
假设我有一个函数T foo(size_t i),并且我想构造一个std::array类型的对象arr,使得arr[i] == foo(i)。我想要一个即使 T 不存在也能工作的解决方案...
我正在使用 C++ 中的模板,想知道如何正确(值)初始化类模板中的非静态数据成员。例如,考虑以下代码片段: 模板<
是否可以在编译前检查头文件中的 std::execution::par ?
我使用的是 Mac Ventura 13.6.4。当我在线研究 标头时,我了解到尝试编译某些执行策略时存在问题。例如,使用
如何在 C++ 中高效地使用 std::variant 进行错误处理?
我最近开始探索在现代 C++(C++17 及更高版本)中使用 std::variant 来处理错误并同时从函数返回值,有点类似于 Rust 的 Result 类型。我
在 Linux 中使用 g++ 编译器编译 {fmt} 包含文件时,出现类是私有的且无法从外部访问的错误
我正在使用 #include 在我的 C++ 应用程序中格式化 std::array #包括 #包括 int main() { std::array 一个...