c++17 相关问题

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

C ++类型删除与特征

我想知道这可以制作符合这样一个特征的擦除类型:模板 使用read_t = std :: conditional_t

回答 1 投票 1

C ++概念和std :: cout

为了学习C ++概念,我尝试重新创建EqualityComparable概念。这是我写的#include代码 模板 概念bool EqualityComparable = ...

回答 1 投票 0

为什么编译器不能推导出自动模板参数,除非我添加const?

我最近遇到了这样的代码问题:constexpr auto lambda = [] {};模板 struct Lambda {};模板 无效测试(Lambda ){} int main(){...

回答 1 投票 9

使用模板元编程检测函数可以采用的最大参数数

请考虑以下代码:template std :: size_t maximum_number_of_arguments(F && f){//这里的代码}我想要一个能找到最大数量的函数...

回答 1 投票 2

polymorphic_allocator:如何更改容器的内存资源

假设我已经使用了一个std :: pmr :: vector of int。它已经初始化并且包含N个项目(重要的是N大于0)。在引擎盖下它使用内存资源M1。 ...

回答 1 投票 2

可以在c ++ 17中的聚合初始化中执行复制省略吗?

鉴于:// C ++ 17 #include struct Foo {int i; std :: string str; }; int main(){Foo foo {1,std :: string(“Hello,world!”)};可以直接初始化Foo :: i和Foo :: str ......

回答 1 投票 0

非物质化的临时性是否需要可以访问析构函数?

GCC 7.2和Clang 5.0在这种情况下不一致:struct A;一个foo(); struct A {static void bar(){foo(); } private:~A()=默认值; };一个foo(){return {}; // GCC ......

回答 2 投票 5

C ++ Dummy模板参数在派生模板类中使用typedef时导致错误

我正在尝试修复我在使用此代码时遇到的奇怪错误。这是一个可以复制错误的最小示例:test11.cpp:namespace detail {template class Test {...

回答 1 投票 1

使用std :: optional来避免函数中的默认参数是否有任何优势?

我正在将代码移植到C ++ 17,尝试尽可能使用新功能。我喜欢的一件事是使用std :: optional来返回或不返回某些条件下可能失败的函数中的值。一世 ...

回答 3 投票 2

使用auto返回不同的Lambda

所以我很好奇c ++ 17是否能让我灵活地做到这一点。我有这个答案,其中包含代码:模板 功能 >&)> ......

回答 2 投票 2

const构建空基类

const_cast远离空基类并在其上调用非const方法是不确定的行为?例如,类EmptyBase {public:void bar(){...}}; class Something:public EmptyBase ...

回答 1 投票 5

C ++调用具有未知类型参数的函数?

我试图实现与RapidCheck相同的功能:无论其参数如何调用任何Callable。以下是RapidCheck的一个示例:#include int main(){rc :: check(“加法是...

回答 2 投票 0

折叠嵌套std :: future

我想折叠一个嵌套的std :: future,例如void foo(std :: future ){} foo(fold(std :: declval >>>());这是 ...

回答 1 投票 0

自动模板参数:g ++ 7.3 vs clang ++ 6.0:哪个编译器正确?

两个编译器为此代码示例生成不同的结果。 Clang生成两种不同的类型。 G ++对fu和fi使用相同的类型。哪一个符合标准? #包括 ...

回答 1 投票 10

有没有办法跟踪任何编译器的模板参数推断?

我正在寻找方法从编译器的逻辑中获取一些跟踪日志,当它试图推断模板参数类型时,无论何时成功。例如,给定代码:#include

回答 1 投票 8

std :: variant转换构造函数行为

C ++ 17 std :: variant 有一个转换构造函数模板<class T> constexpr variant(T && t)noexcept(/ *见下面* /); (http://en.cppreference.com/w /中的第4号...

回答 1 投票 3

c ++为什么这个static_assert有效:

我有关于constexpr的以下问题,我有点明白,一个人不能声明一个std :: shared_ptr 是const,但为什么第一个static_assert()有效?另外,怎么做......

回答 2 投票 2

类模板参数推导和默认模板参数

以下精简代码不适用于最新的clang ++ 5,但是被g ++ 7:template接受 struct wrapper;模板

回答 1 投票 14

如何获取参数包中的元素索引

如何获取以下内容以将参数包元素的索引放入元组中? template <typename ... Ts> class ClassA {public:ClassA(Ts ... ts):tup(make_tuple(ts,0)...){...

回答 2 投票 3

结合void_t和enable_if?

在C ++ 17中,void_t允许使用类/结构模板:模板轻松地执行SFINAE struct test {static constexpr auto text =“general case”; };模板

回答 2 投票 1

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