c++17 相关问题

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

c++中如何保证智能指针的引用有效?

我有一个指标收集线程,用于检查工作线程以报告指标。 这些工作线程可以随时终止,那么我如何确保当我调用工作线程的指标报告功能时...

回答 1 投票 0

结构化绑定宽度

是否可以确定应使用结构化绑定语法在方括号中指定多少个变量名,以匹配普通右侧结构的数据成员数量? 我...

回答 3 投票 0

公共类型模板的特化,而不需要特化类模板

#include“向量” 模板 结构返回类型; 模板<> 结构体返回类型<0> { 使用类型=双精度; // 值的返回类型 }; 模板 &l...

回答 1 投票 0

std::integer_sequence

我已经开始使用这种类型的构造,它依赖于 C++20 的 lambda 显式模板参数: 模板 结构体Foo { std::tuple 条; 自动

回答 1 投票 0

A::A 未定义行为变体的向量成员吗?

#包括 #包括 结构体A; 使用 B = std::variant; 结构体A { std::向量 v; }; int main() { 一个一个; } 它使用 GCC、clang 和 MS 进行编译...

回答 2 投票 0

检查 std::filesystem::path 是否在目录内

我有一个由 std::filesystem::path 表示的根路径。我想将一些用户提供的文件名添加到此路径,并确保生成的路径不在根目录之外。 例如: ...

回答 2 投票 0

C++17 中 [[nodiscard]] 的解释

在使用 C++20 的项目中,CLion 建议我将 [[nodiscard]] 添加到我的 const 类方法定义中,例如, 类测试{ 民众: [[nodiscard]] int f(int a, int b) const { 返回 a + b...

回答 3 投票 0

C++17 constexpr 函数将数组转换为不同大小的数组

我问是否可以转换如下函数: 字符串转义(const string& s) { 字符串 r = ""; for(char c:s) { 如果(c=='"') { ...

回答 1 投票 0

ExprTk 自定义 lambda 函数和默认参数

之前ExprTk表中添加了一个随机函数: exprtk::symbol_table 符号表; std::random_device rd; std::mt19937 gen(rd()); std::uniform_real_distribution...

回答 1 投票 0

打印科学格式符号

第一个代码 无效求解() { ll n; cin >> n; 向量 v(n); 总和 = 0; ld mx = 0; for(int i = 0; i < n; i++) { cin >> v[i]; } w...

回答 1 投票 0

错误C2988(无法识别的模板声明/定义)推导方法返回类型

我收到错误 C2988(无法识别的模板声明/定义),光标在 *method 参数之前提示。 命名空间绑定 { 模板 我收到错误 C2988(无法识别的模板声明/定义),光标在 *method 参数之前提示。 namespace Bind { template <typename ModelClass, typename ReturnType> static std::unique_ptr<Binding> Get (ReturnType (ModelClass::*method)(), const String& source, const Symbol& aspect = {}) { // whatever return nullptr; } // .... } 示例实例化: Function WhateverClass::whateverMemberFunction() 返回 ReturnType 并且不带任何参数。模板参数 ModelClass 和 ReturnType 都应该从这个实例化中推导出来: Bind::Get(&WhateverClass::whateverMemberFunction, "") 该模板可以在 Xcode (Apple) 上正常编译,但在 MSVC 2019 上编译失败。两者都使用 C++17 标准。 我错过了什么? 这绝对是一个 msvc bug。当参数之一是成员指针类型时,MSVC 似乎在使用 {} 作为默认值时遇到问题。 解决方法 您可以将{}更改为Symbol{},如下所示: Get (ReturnType (ModelClass::*method)(), const String& source, //---------------------vvvvvv---->changed to this const Symbol& aspect = Symbol{}) { }

回答 1 投票 0

& 在 c++ 中类型之后或参数名称之前

以下有区别吗 void 名称(const std::string &name) { std::cout << "Name: " << name << std::endl; } void Name2(const std::string& nam...

回答 1 投票 0

使用 Base64 字符串文字编译 uint8_t 数组的初始化

我有一个源文件,其中有一个表示图像的大字节数组。 下面是一个例子(实际上它可以是任何随机数据): const uint8_t image_test_image[] ={ 0x00、0x01、0x02、0x03、0x04、0x...

回答 1 投票 0

覆盖 std::variant 中双精度值的比较运算符

我有一个类方法,根据当前选择的关系比较 std::variants : 布尔结果=假; 自动缓存值 = ...; // std::variant c...

回答 1 投票 0

如果不考虑返回值优化,bts 对于给定代码来说是这样工作的吗?

#包括 使用命名空间 std; A类{ 民众: 整数数据; A(整数){ 数据=s; } A(A &obj){ 数据=obj.数据; 计算<<&...

回答 1 投票 0

有没有办法在 C++ 编译时评估一组 constexpr 函数?

我是 C++ 模板的新手,我正在尝试创建一个 constexpr 模板函数,该函数采用返回类型 bool 的其他函数的参数包(在本示例中为输入类型 int),并检查是否为

回答 1 投票 0

读取现代 C++ 中可能未对齐的字段

假设我有一个已知大小和偏移量的字段数据包,我想从中进行潜在的未对齐读取。在现代 C++ 中是否有比标准 memcpy 更符合人体工程学的方法来做到这一点?...

回答 1 投票 0

CRTP 中的模板规则与 MSVC

考虑以下代码: 模板 KFBase 类 { 民众: 模板 结构体状态{ 名义名义状态; }; }; 模板 考虑以下代码: template <class Derived> class KFBase { public: template <typename Nom> struct State { Nom nominal_state; }; }; template <typename A> class PFilter : public KFBase<PFilter<A>> { public: using Base = KFBase<PFilter<A>>; // comment this out and it works using State = typename Base::State<int>; }; int main(int, char**){ PFilter<int>{}; } 正如评论中所暗示的,如果我注释掉 State 别名,一切都可以在 MSVC 上正常编译。但是,如果我包含它,则在使用 C++17 或 C++20 编译时会出现编译错误(https://godbolt.org/z/aM78ToMsc),但回滚到 C++14 时它可以工作再次在 MSVC 上 (https://godbolt.org/z/Eej9bjrf7) 在 GCC 上,它可以与 C++20 一起编译,所以我想知道我是否遵循 C++ 标准,或者这是 C++17 MSVC 实现中引入的错误。 我的直觉是这与 CTAD 有关,但我不确定。 有谁能解释一下吗? 附注 如果有人对这个问题有更好的标题,请告诉我。 您可能需要 template 来表明 < 不是比较 using State = typename Base::template State<int>; MSVC 在 C++14 模式下相当宽松(因为当时确实如此)。更高版本默认打开 /permissive- 标志。 也许 gcc 默认也有更宽松的模式,我不知道。

回答 1 投票 0

你能从桌面快捷方式打开用 VSCode 制作的 C++ 游戏吗?

我使用 VSCode 用 C++ 和 Raylib 制作了一个俄罗斯方块游戏,我想知道是否有一种方法可以单击计算机上的快捷方式并打开该程序。我使用的是 Windows 11。 我正在关注

回答 1 投票 0

适用于 C++ 的 VSC 中的组合键

我正在乞求我的 C++ 之旅,我正在尝试找到一种快速的方法来编译和运行我的程序,而无需将手从键盘移到鼠标。我知道这可能看起来很懒,但有些......

回答 1 投票 0

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