c++17 相关问题

C ++ 17是2017年批准的C ++标准的名称。它基于以前的C ++ 14标准,改进了核心语言和标准库,并添加了一些新的语言功能。

c++ 中的 std::invoke 是什么?

我刚刚阅读了有关 std::thread 和 std::bind 的内容,我遇到了 Callable 概念和 std::invoke。 我读到了关于 cppreference 的 std::invoke 但我不明白它说的是什么。哈...

回答 3 投票 0

需要帮助在 C++ 中为自定义类定义哈希函数

我有一个如下所示的自定义类标识符,并且需要帮助来理解由于为自定义用户类标识符定义哈希函数而出现的编译时错误。班级

回答 1 投票 0

将 std::uint16_t 转换为 std::string_view

我想将 std::uint16_t 转换为 std::string_view。我期望以下代码能够工作: std::string_view to_str(std::uint16_t v) { 返回 std::string_view(std::to_string(v)); } 因为...

回答 1 投票 0

std 将 uint16_t 转换为 string_view

我想将 std::uint16_t 转换为 std::string_view。我期望以下代码能够工作: std::string_view to_str(std::uint16_t v) { 返回 std::string_view(std::to_string(v)); } 因为...

回答 1 投票 0

从另一个 std::vector 的连续子集创建 std::vector 的有效方法

我当前正在接收一些存储在 std::vector 中的数据,并且我正在寻找一种有效的方法来删除此向量中数据的前几个索引,其中包含一些标头

回答 1 投票 0

auto [ ] 语法是什么意思以及为什么它不能与 { } 一起使用[重复]

我一直以为C++17中的auto是实际数据类型的占位符,但在下面的例子中却并非如此: tuple permute(int a, int b){return {b,a};} int main(){ ...

回答 1 投票 0

C++ 应用程序在 Visual Studio 2022 (>= 17.10) 上的 std::minmax_element 上崩溃

最新版本的 Visual Studio C++ 编译器破坏了我们的代码。我们的应用程序使用 STL 算法(如测量样本上的 std::minmax_element)。有时设备无法提供有效的样本...

回答 1 投票 0

基础到派生的 static_cast,不可见的关系

我们可以从 Base* 静态转换为 Derived*,但在我的例子中,当转换应该发生时,关系是不可见的。有没有什么技巧(当然除了reinterpret_cast)可以使它......

回答 1 投票 0

模板结果值应如何正确嵌套在其他模板结构中?

我正在尝试根据模板类型 T 有条件地选择 Res 类型。 条件是如果 T 具有特定的成员类型(使用 using 声明),则将 Res 设置为该成员类型。否则,设置 R...

回答 1 投票 0

C++ 中的多线程无法正常工作

我正在尝试运行两个线程。第一个将无限运行,另一个将在第一个上的互斥锁被清除时运行。 我不想改变代码的基本结构,比如,l...

回答 1 投票 0

标准库中是否定义了具有复制构造函数但没有移动构造函数的类型?

一般来说,C++ 标准库类型的设计同时考虑了复制和移动语义。 标准库中是否定义了任何具有复制构造函数但没有...

回答 1 投票 0

标准库中是否定义了具有复制构造函数而缺少移动构造函数的类型?

一般来说,C++ 标准库类型的设计同时考虑了复制和移动语义。标准库中是否定义了具有复制构造函数但缺乏移动的类型

回答 1 投票 0

对象的状态在其构造之后和成员函数调用之前发生变化

下面的程序已尽可能减少以显示 Visual Studio C++ 编译器遇到的问题。 f 是一些接受输入谓词对象 P p 的算法函数,它具有用户德...

回答 1 投票 0

如何检测构造函数确实是 constexpr,以便我可以利用静态初始化?

看这段代码: 结构非Constexpr { 非Constexpr() { } }; 模板 结构栏{ NonConstexpr nonConstexpr; constexpr Bar() { } }; 结构体 Foo { 酒吧 看这段代码: struct NonConstexpr { NonConstexpr() { } }; template <typename T> struct Bar { NonConstexpr nonConstexpr; constexpr Bar() { } }; struct Foo { Bar<void> bar; constexpr Foo() { } }; 在这段代码中,Foo的构造函数被标记为constexpr,但它不能出现在常量表达式中,因为它实际上无法满足this的要求。您可以在我的上一个问题中阅读详细信息。 我的问题是:我能否在编译时以某种方式检测到 Foo 的构造函数实际上不会表现得像 constexpr? 我问这个的原因是,我想检测 Foo 的全局变量是否会被静态初始化(我想在上面加上 static_assert,因为我的全局 Foo 对象必须是静态初始化)。 请注意,临时将 constexpr 添加到变量的简单解决方案不起作用,因为我的 Foo 有一个不平凡的析构函数。 这在 C++20 中标准化为 constinit。 对于以前的语言版本,Clang 具有 [[clang::require_constant_initialization]] 属性,GCC 10+ 支持 __constinit 作为扩展。 据我所知,防止编译器默默删除 constexpr 的唯一(当前的、独立于工具链的)方法是分配给 constexpr: struct NonConstexpr { NonConstexpr() { } }; template <typename T> struct Bar { NonConstexpr nonConstexpr; constexpr Bar() { } }; struct Foo { Bar<void> bar; constexpr Foo() { } }; int main() { constexpr auto f = Foo(); return 0; } ...将无法通过 constexpr constructor calls non-constexpr function "Bar<T>::Bar() [with T=void]" 进行编译

回答 2 投票 0

如何用指针填充在主函数中创建的数组到void函数中?

#包括 使用命名空间 std; void add_numbers_to_array (int *array); int main() { int array1[] {}; int array2[] {}; 计算<< array1 << endl; cout <...

回答 1 投票 0

如何为一个拥有 nocopy-nomove 类型的类编写一个 ctor,其中一个类型要从另一个类型(可以是多种类型中的一种)进行 init.ed?

我从这样的场景开始: 不可复制、不可移动的类 Foo1、Foo2 和 Baz 是不可触及的 结构 Foo1 { Foo1(int); Foo1(Foo1&&) = 删除; }; // 我不能碰它 结构 Fo...

回答 1 投票 0

如何通过 otlp http/grpc 导出器在 C++ opentelemetry 中使用计量仪器?

在我的 C++ 项目中,我使用 opentelemetry (v1.14.2) 来收集跟踪和日志。现在我想使用仪表仪器(双可观察仪表)和 otlp http/grpc 导出器添加指标集合。我已经...

回答 1 投票 0

比较大小为 3 个字符的字符串

我正在尝试验证字符串(string_view)是否是“允许的”组合之一。 字符串始终为 3 个 ASCII 字符 - 大写和小写 - A、B、C。这些是 3 个 elem 的排列...

回答 1 投票 0

临时容器元素的生命周期延长

通过 const 引用延长临时对象的生命周期是否也适用于临时容器的元素,例如下面程序中引用 r 的情况? 这是保证吗...

回答 1 投票 0

如何在 (cout << ... << args) using fold expressions?

鉴于 模板 无效打印(类型&& ...args){ (算<< ... << args); } // .... print(1, 2, 3, 4); // prints 1234 How to add spaces so we get 1 2 3 ...

回答 1 投票 0

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