c++14 相关问题

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

是否有 C++ 方法来获取标量的最小值/最大值?

我们的单元测试测试最小/最大值。如果测试变量的基础数据类型发生变化,则需要更新测试 - 如果我们发现它并记得这样做。 我们只谈论大学...

回答 1 投票 0

在 C++14 中 [class]/7 中的要点 (7.5) 的目的是什么?

这基本上是我之前问题的延续。 这是 C++14 中的 [class]/7: 标准布局类是这样的类: (7.1) — 没有非标准布局类类型的非静态数据成员...

回答 2 投票 0

数好序列[关闭]

任务是: 给定一个长度为 n 的数组 a,统计从 a[l] 到 a[r] 的子序列中有多少对 (l,r) 是好的子序列。 一个大小为 N 的好的子序列被认为是好的子序列如果...

回答 0 投票 0

在宏/模板的帮助下为任何 dll 生成包装器

例如我有 name1.dll 方法: void func1(int) int func2(bool, char) 和 name2.dll 方法: std::string func1() bool func2(int, int, int) 为了和他们一起工作,我想得到一些

回答 1 投票 0

如何识别一个exe文件是c还是c++?

在我上次的viva中,我的大学教授问了我一个问题,如何识别.exe文件是c还是c++? 谁能知道这个如何识别那个..?

回答 1 投票 0

如何将不同线程的请求聚合成批量请求到另一个rpc接口,然后将结果返回给不同的线程?

RPC idl: 要求{ 列表 输入 } 回应{ 列表输出 } 线程 1:输入{1} 线程 2:输入{4} 线程 3:输入{6} 一共有三个线程,需要调用rpc 3次。我...

回答 1 投票 0

调用模板函数的专业化与原型不明确

我刚刚编写了用于序列化或(某些)对象以及某些本机类型的函数,但遇到了一个奇怪的错误: : 在函数“int main()”中: :29:34:错误:调用

回答 1 投票 0

获取元组类型作为模板参数包

我有一个名为 serialize 的函数模板,它采用如下模板参数: 模板 std::string 序列化 (T 常量 & t); 我有不同的序列化用例...

回答 0 投票 0

C++ 线程:如何确定当前可用的堆,以避免用完

我正在查看的线程具有大约 32,000 KB 的预配置堆大小(它所属的进程)。在这个线程中,我希望在一个方法中分配大约 320kb,这并不经常被调用...

回答 0 投票 0

不同功能的多重继承

环境:Windows 10,IDE:Code::Blocks 20.03 我有一个与 C++ 中的多重继承相关的基本问题。如果我有如下所示的代码: 类基础 { 民众: 根据() {} 虚拟 ~Bas...

回答 1 投票 0

从 BOOST 或 C++14 类中删除 ACE_Singleton 和其他一些单例类

我们正在从 C++03 迁移到 C++14,这是从 ACE lib 走的路的决定。我们主要将 ACE 库用于 Singleton 对象和锁。因此,对于锁,我们可以使用 C++11/14 中的互斥锁,但是什么会……

回答 1 投票 0

Clang 与 G++ 在类模板参数数量和模板模板参数重新声明方面存在分歧

在下面的例子中,抽象是一个类模板,它的第一个参数是一个类型,第二个参数是另一个带有布尔值和任意数量的参数的模板。 模板 在下面的例子中,Abstract 是一个类模板,它的第一个参数是一个类型,第二个参数是另一个带有布尔值和任意数量的参数的模板。 template<bool,typename> struct Default; template< typename T = void, template<bool,typename ...> class = Default> struct Abstract; template<typename T> struct Abstract<T> {}; template<typename T, template<bool> class C> struct Abstract<T,C> : Abstract<T> {}; int main() {} Clang 和 C++ 的输出如下: 铿锵声: http://rextester.com/BJSW46677 错误:类模板部分特化不特化任何 模板参数; G++http://rextester.com/MDN65674 好 所以,我决定对 clang 友好,并在 Abstract 的声明中添加了第三个参数。 template< typename T = void, template<bool,typename ...> class = Default, typename = void > struct Abstract; 现在,Clang 和 G++ 都可以解决这个问题。我猜 Clang 抱怨的原因是因为专业化并没有真正专业化任何东西。但事实并非如此。它专门针对参数的数量。 接下来,我为模板模板参数添加了另一个特化。这个例子看起来像这样: template<bool,typename> struct Default; template< typename T = void, template<bool,typename ...> class = Default, typename = void > struct Abstract; template<typename T> struct Abstract<T> {}; template<typename T, template<bool> class C> struct Abstract<T,C> : Abstract<T> {}; template<typename T, template<bool,typename> class G> struct Abstract<T,G> : Abstract<T> {}; int main() {} Clang 和 C++ 的输出如下: 铿锵声: http://rextester.com/LJIOC38789 错误:Abstract<type-parameter-0-0, C, void>的重新定义注意:以前的定义是struct Abstract<T,C> : Abstract<T> G++: http://rextester.com/TSDRZ44717 OK -(声明中也不需要第三个参数) 我 不认为 Clang 就在这里,因为第三个特化对模板模板参数有效,可变模板参数允许我特化任意数量的参数。但是,我不确定。 问题: 哪个编译器有问题?为什么?如果能从规范中引用并更清楚地了解这个主题,那就太好了。 正如评论中所指出的,问题的第一部分——即是否允许专注于主模板中作为可变参数模板的模板模板参数——与另一个问题基本相同。如果您阅读了我对那个问题的回答,它包含了偏特化的偏序规则如何工作的摘要。特别是在您的情况下,问题是自 C++17 以来,template<bool,typename ...> class 参数可以接受 template<bool> class 参数,反之亦然;这意味着在 C++17 及更高版本中,偏序规则得出的结论是您编写的偏特化 not 比主模板更特化,这使得程序格式错误。 (FWIW,Godbolt 上可用的最新版本的 Clang trunk 接受专业化,我希望 CWG2398 最终能够以一种使这段代码格式良好的方式得到解决。) 关于问题的第二部分,关于一对偏专业: template<typename T, template<bool> class C> struct Abstract<T,C> : Abstract<T> {}; template<typename T, template<bool,typename> class G> struct Abstract<T,G> : Abstract<T> {}; 某些版本的 Clang 声称第二个版本是第一个版本的“重新声明”简直是无稽之谈;这可能是那些版本中的错误。这是固定在行李箱中的。

回答 1 投票 0

在CGAL中获取排列中每个有界面的顶点

我在原始点中有一组点,我将其转换为对偶点(一组线)。我想打印排列的每个有界面中涉及的顶点。 我正在尝试修改来自 h...

回答 0 投票 0

这个临时的 std::string 表达式是否可以接受?

我意识到这不是最有效的做法,但是大多数人都可以接受 C++ 来创建用于连接的临时 std::string 对象,就像这里的第 4 行一样吗? constexpr const char* const a =...

回答 0 投票 0

这个 temporarstd::string 表达式是否可以接受 c++?

我意识到这不是最有效的做法,但大多数人都可以接受 c++ 创建临时 std::string 对象进行连接,如第 4 行中所示? 1 constexpr const char* const ...

回答 0 投票 0

追踪 shared_ptr 的所有者?

在我们的应用程序中,我们即将(最终..)从原始指针切换到使用 C++11 smart_ptr 模板。 我们的应用程序中确实偶尔会出现错误,(非 C++)对象仍然保留对我们的 C++ 的引用

回答 3 投票 0

不能使用 std::map::emplace 插入没有复制构造函数的类的对象

我正在尝试编译以下代码: #包括 #包括 我的班级 { 民众: 我的类():m_cv(){} std::condition_variable m_cv; //只是为了说明...

回答 1 投票 0

创建不同类的函数调用映射

在这里输入图片描述 我正在尝试创建一个函数调用映射到另一个类中的函数。在这种情况下,“a”将是另一个类(事件类)的对象。我如何制作这张地图...

回答 0 投票 0

constexpr 类型检查

我正在尝试根据我是否将特征矩阵传递给它们来重载某些函数,并且我想让自己成为一些不错的 constexpr 函数以提高可读性。 为此,我决定...

回答 3 投票 0

使用具有两个或多个参数的类初始化 std::tuple

#include 类 NoCopyMove { 民众: NoCopyMove(int a) : a_(a), b_(a) {} NoCopyMove(int a, int b) : a_(a), b_(b) {} NoCopyMove(const NoCopyMove&) = 删除;

回答 2 投票 0

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