generic-programming相关内容

重构一个“愚蠢的"将函数转换为具有容器迭代器的通用 STL 样式

我已经设法了解了 C++ 的一些功能能力(for_each、映射函数、使用迭代器...),但是用于接收通用容器和迭代器的模板和函数参数列表的构造仍然让我难以理解.我有一个实际的例子,希望有人可以为我说明: 采用以下函数来处理传入的 std::vector 并构建一个进程的许多数据点/迭代的运行总数: /* for-loop 方法 - 不是很精通 */无效UpdateRunningTotal ..
发布时间:2022-01-24 21:24:40 C/C++开发

如何使用 C++ 概念(“concepts lite")支持构建 gcc?

C++ 标准委员会正在制定概念扩展的 TS(技术规范):“编程语言 - 概念的 C++ 扩展".N4377 是最新版本文档.为了包含在 C++ 标准中,要求实现功能,理想情况下是可公开访问的系统. 我知道 concept-gcc 但上面的概念提案(俗称Concepts Lite)是不同的.我听说有一个概念分支,我尝试了 的 origin/asutton/c++-conceptsgcc 的 g ..
发布时间:2022-01-23 21:08:11 C/C++开发

Amazon API Gateway Import From Swagger 错误 - 不采用泛型

我正在尝试通过从 Swagger 导入来创建新的 APIGateway,但出现验证错误: 导致问题的特定类是我们的 PaginationModel 类. 代码模型定义: public class PaginationModel{公共 IEnumerable项目{得到;放;}公共 int 偏移量 { 获取;放;}公共 int totalCount { 获取;放;}} 代表 ..

有什么方法可以递归地展平元组吗?

在 Rust 中,有没有办法使用 traits 和 impls 来(递归地)展平元组? 如果有帮助,那么与 N 个嵌套对一起工作的东西是一个好的开始 trait FlattenTuple {fn into_flattened(self) ->/* ???*/}//这样assert_eq!((1, (2, 3)).into_flattened(), (1, 2, 3)) 如果它可以扩展使用 ..
发布时间:2022-01-20 08:26:22 其他开发

如何在 fortran 90/95 中使用内部类型进行一些通用编程

我想编写一些适用于不同类型的程序.我打算使用 here 和 这里.我这里举一个简单的例子. !-------------------------------------------------------------- !模块数据类型输入值整数 :: v端型输入右值实数(8) :: v端型结束模块数据类型!--------------------------------------------- ..
发布时间:2022-01-14 10:03:08 其他开发

在 f# 中废弃你的样板

我使用了废掉你的样板 a> 和 Haskell 编程语言中的 Uniplate 库,我会发现这种基于可区分联合的泛型编程形式非常有用.f# 编程语言中是否有等效的库? 解决方案 我不知道;如果没有内置语言/编译器的支持,我希望唯一的选择是基于反射的版本.(我不知道 Uniplate 是如何实现的 - 你是吗?) 这是基于原始演示文稿示例的基于反射的版本的代码.我没有深入考虑它的局限 ..

纯 C 中的“多用途"链表实现

这不完全是一个技术问题,因为我知道 C 足以做我需要做的事情(我的意思是,就不要“让语言妨碍你"而言),所以这个问题基本上是一个“要采取什么方向"的问题. 情况是:我目前正在学习高级算法课程,为了“成长为程序员",我被要求使用纯 C 语言来实现实际作业(效果很好:几乎任何你犯的小错误make 实际上迫使你完全理解你在做什么以修复它).在实现过程中,我显然遇到了必须从头开始实现“基本"数据结构 ..
发布时间:2022-01-01 18:11:16 其他开发

“模板"VHDL 实体

这让我困扰了很长一段时间,但是否有可能在 VHDL 中描述实体类似于 C++ 中模板的工作方式(或较少扩展泛型?).只是让实际的端口类型只在综合/编译期间决定? 一个例子是多路复用器,假设我有一个 4 输入多路复用器,现在我有几个总线大小我使用这个多路复用器,-4,6,7,8-.目前我为每个不同的总线大小编写了一个不同的多路复用器;然而,输出只是转发的选定输入之一,因此与总线类型相同. ..
发布时间:2021-09-17 19:50:10 其他开发

C++:为什么 decltype (*this) 返回引用?

template结构 foo{无效 f(){decltype(*this) a(*this);do_some_test(a);}数据;};//编译器不会接受这个 在我的解释中,decltype 应该返回 a 类型,以便我们可以在声明中使用它.但是google说在decltype(x)中,如果x是一个左值,它会返回T& where T> 是 x 的类型. 但是他们设计它来返回引用的目的是什么 ..
发布时间:2021-09-04 20:48:58 C/C++开发

选择随机子集的通用算法实现

假设我们要从大小 n 的总集合中选择一个大小为 m 的随机子集.由于可以使用 S = {0, 1, 2, ..., (n - 1)} 中的唯一索引来标识总集中的每个元素.该问题相当于从 S 中随机选择 m 个不同的元素. 一个简单的算法是重复调用伪随机数生成器 rand 从 S 生成随机数.如果之前已经生成过数字,请再试一次.算法终止直到生成 m 个不同的数字.该算法的最优空间复杂度为O(1 ..
发布时间:2021-07-02 19:45:58 C/C++开发

< T& gt;是什么时候用作方法签名?它是返回类型吗?

抽象公共T iterEdges(EdgeFun func,T accum); 这是用于图形的多线程库.我不要求任何与实际实现有关的东西,我只是不明白双精度返回类型的含义是什么? 我只是在这里猜测,但这是我的解释(我尝试使用谷歌搜索,但Google在非字母数字符号上不匹配,因此我尝试了几种术语组合,但没有任何用处.) 是说它会返回某种T类型的集合吗?有两个类扩展了此方 ..
发布时间:2021-05-18 20:34:31 Java开发

重构“哑巴"通过容器的迭代器,以通用STL样式起作用

我已经设法将C ++的某些功能(for_each,映射函数,使用迭代器...)包住了脑袋,但是用于通用容器和迭代器的模板和函数参数列表的构造仍然使我难以理解.我有一个实际的例子,希望有人能为我举例说明: 采用以下函数处理传入的std :: vector并构建一个进程的许多数据点/迭代的运行总计: /* for循环方法-不太精明*/void UpdateRunningTotal(int_ve ..
发布时间:2021-05-18 18:40:00 C/C++开发

当前的SYB是否允许使用新类型扩展泛型函数?

第一 两个废弃样板文件描述了一种方法编写适用于通用类型的通用函数,但对于特定类型则具有特殊情况.例如, aeson 包中的 fromJSON 定义了用于从JSON转换的通用函数,但为list或 Int 等类型提供了特殊情况: parseJSON ::(数据a)=>值->解析器parseJSON j = parseJSON_generic j`ext1R`列表`ext1R`矢量`ext2R'ma ..
发布时间:2021-05-10 18:58:13 其他开发