c++17 相关问题

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

在Qt中创建HTML页面并将页面保存为PDF文件

我正在尝试使用 Qt C++ 创建一个 HTML 文件,然后将其保存为 PDF 文件。到目前为止,我已经成功创建了一个 HTML 文件,但是当我尝试将其保存为 PDF 文件时,我收到警告 D3D11 Live Obje...

回答 1 投票 0

在 C++17 中以函数方式计算笛卡尔积

我正在尝试使用闭包/自定义函数来实现笛卡尔积,闭包是 function(x,y) = pow(x,2) + pow(y,2) 并以功能方式实现它,即不使用C 型 Lo...

回答 2 投票 0

“stoi”未在此范围内声明

我已经用另一种方式修复了它,但我仍然想知道为什么 stoi 在这里不起作用。这是代码: #包括 #包括 std::string fakeBin(std::string str){ 对于(我...

回答 3 投票 0

(竞赛题)计算没有被象攻击的方格数量

我的解决方案如下。 国际象棋中的象是一个棋子,它攻击同一条对角线上(两条对角线上)的所有方格。 Shakhriyar 将 m 个主教放在一个大小为 n * n 的棋盘上。现在他想要

回答 2 投票 0

并行执行策略是否要求迭代器引用类型为左值?

我在代码中发现了一个性能问题,该问题是由于在非左值范围上使用并行执行策略调用的算法缺乏并行性而导致的。 考虑以下代码

回答 1 投票 0

是否可以在 std::array 内创建 std::array 的 constexpr 值?

我正在优化一些设置代码。这是一个大型预定义值数组,分为三个嵌套结构。它被定义为 结构体PerId { const Id m_Id; 常量 uint3...

回答 2 投票 0

`std::cout << &i <<` print address of `i` or address of each element in num?

#包括 #包括 int 主函数 () { std::vector num {1, 2, 3}; for (const int &i : num) { std::cout << i <<"\n"...

回答 1 投票 0

这段代码有什么bug,或者MSVC有什么bug?

这是代码片段 #包括 #包括 结构体 __declspec(dll导出) 福{ std::unordered_map> foo; }; 福...

回答 1 投票 0

C++ 数据结构可以做到这一点?

我有一个名为逻辑的类,它包含一个评估标准。不同的对象最多可以有 20 个这样的条件。我目前有一个包含多个逻辑类的数组。 ...

回答 1 投票 0

错误:静态断言失败:模板参数必须是完整的类或无界数组

我派生自一个基类,我尝试在其中定义一个类型。该类型通过变体依赖于自身,因此需要在定义时了解基类的内存布局。豪...

回答 1 投票 0

C++17 中可能存在 is_variadic 类型特征吗?

在 C++17 中,是否可以设计一个类型特征来检测可调用对象是否是可变参数(因此可以采用任意长的参数数量)? 模板 是否可以在C++17中设计一个类型特征来检测可调用对象是否是可变参数(因此可以采用任意长的参数)? template <class Callable> struct is_variadic; 我目前不知道如何做到这一点,但我无法说服自己这是不可行的。那么如果可行的话会是什么样子? 如果函数类型是可变参数,则 is_variadic 类型特征为 true。 这意味着类型特征必须部分特化才能接受可以接受可变数量参数的函数类型。 template <typename> struct is_variadic : std::false_type {}; template <typename R, typename ...Args> struct is_variadic<R(Args..., ...)> : std::true_type {};

回答 1 投票 0

显式声明模板参数时如何进行完美转发

考虑这个简单的函数 模板 自动 mkVector(U&& x0) { 返回 std::vector>{std::forward(x0)}; } 以及 4 个可能的用例...

回答 1 投票 0

如何实现 std::variant 包装类的隐式转换和运算符?

我正在尝试实现 std::variant 包装器,在分配和创建方面其行为与 std::variant 类似,但也允许隐式转换为变体持有的所有替代项。

回答 2 投票 0

给 std 模板函数起别名

我需要为 std::get 函数添加别名,以提高代码的可读性。 不幸的是,我遇到了编译时错误 get<0> in namespace ‘std’ does not name a type。使用相当于

回答 4 投票 0

如何使用可能不完整的类型参数调用模板函数

模板函数 func 设计为可在任何地方使用。它对任何 T 都有相同的函数体。我只想写一次它的函数体。但功能取决于定义类型 模板功能func<T>设计用于任何地方。对于任何T,它都有相同的函数体。 我只想写一次它的主体。但该功能取决于 type<T> 的定义才能正常工作,并且在某些情况下没有 type<T> 的定义。请参阅以下示例(C++17 中): /// type.h #include <stddef.h> #include <stdint.h> #include <type_traits> template<typename T, typename = void> struct type; template<typename T> size_t func() { return type<T>::magic; } template<typename T> struct type<T, std::enable_if_t<std::is_arithmetic_v<T>>> { static constexpr size_t magic = sizeof(T) * 2; }; /// my_type.h struct MyStruct { int a; static void Dummy(); }; /// my_type.cpp #include "my_type.h" #include "type.h" template<> struct type<MyStruct> { static constexpr size_t magic = 123; }; void MyStruct::Dummy() { (void)func<MyStruct>(); } /// main.cpp #include "my_type.h" #include "type.h" int main(int argc, char **argv) { func<int>(); // OK func<MyStruct>(); // Error } 我怎样才能做到这一点: 只写一次func<T>的正文。 当 func<T> 不完整时,可以调用 type<T>。 注意:有一个 Dummy 函数,用于强制编译器为 func<MyStruct> 生成代码,以便链接器满意。 使用显式实例化: /// my_type.h struct MyStruct { int a; }; // Explicit instantiation declaration extern template size_t func<MyStruct>(); /// my_type.cpp #include "my_type.h" #include "type.h" template<> struct type<MyStruct> { static constexpr size_t magic = 123; }; // Explicit instantiation definition template size_t func<MyStruct>(); 声明它存在于头文件中(因此包含头文件的任何内容都可以看到声明,而不是尝试实例化模板本身),并在类型完成后在源文件中定义它。 您也不再需要Dummy,无论如何也不能保证它能工作。

回答 1 投票 0

为 QObject 创建一个 Q_PROPERTY,该 QObject 拥有自己的 Q_PROPERTY

我有一个带有两个 Q_PROPERTIES 的 QInnerItem 类 QInnerItem : 公共 QObject { Q_OBJECT Q_PROPERTY(int bar1 READ bar1 WRITE setBar1 NOTIFY bar1Changed) Q_PROPERTY(int bar2 READ bar2 WRITE

回答 1 投票 0

将常量导出到 QML

大家好。我提前为我的英语道歉。 有人可以帮助我吗?我不明白为什么会发生这种情况以及我做错了什么。 我有一个带有静态常量的单独类(当前...

回答 1 投票 0

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

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

回答 1 投票 0

我不明白带有包扩展的 lambda std::array 的初始化

我发现以下代码(由 phoeen 编写)在运行时实例化基于索引的变体: 模板 std::variant make_variant(std::size_t i) { 断言(我 < s...

回答 1 投票 0

使用星号的金字塔形状

使用星号的金字塔形状 你好,我是 C++ 新手,我尝试了嵌套循环,但我不知道下一步是什么,看到了一些解决方案,但我不明白。 如果你知道,请写下来。

回答 1 投票 0

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