171得票10回答
Python中的泛型/模板?

Python如何处理通用/模板类型的场景?比如我想创建一个名为“BinaryTree.py”的外部文件,并使其处理二叉树,但适用于任何数据类型。 因此,我可以将自定义对象的类型传递给它,并拥有该对象的二叉树。这在Python中是如何实现的呢?

106得票6回答
如何在 Kotlin 中检查泛型类型

我正在尝试在 Kotlin 中测试一般类型。if (value is Map<String, Any>) { ... } 但编译器报错如下: 无法检查已擦除类型的实例:jet.Map 对于普通类型的检查可以正常工作。if (value is String) { ... ...

73得票4回答
Haskell的Data.Typeable是什么?

我曾经看到过 Haskell 的 Data.Typeable 的参考,但我不清楚为什么我要在我的代码中使用它。 它解决了什么问题?怎么用?

51得票4回答
标签分派与部分特化类上的静态方法

假设我想编写一个通用函数void f<T>(),如果T是POD类型,则执行一件事,如果T是非POD类型(或任何其他任意谓词),则执行另一件事。 实现这个的一种方法是使用标签分发模式,就像标准库在迭代器类别中所使用的那样。 template <bool> struct...

49得票1回答
在模板参数中,"typename =" 是什么意思?

我在《Effective Modern C++》的第189页看到了这个表达式: template<typename T, typename = typename std::enable_if<condition>::type> ...

44得票2回答
如何使用C++概念(“概念轻量级”)支持构建gcc?

C++标准委员会正在制定一个名为“编程语言-C++概念扩展”的TS(技术规范)扩展。 N4377 是该文档的最新版本。为了纳入C++标准,需要实现这些功能,最好是在公开可访问的系统上。 我知道concept-gcc,但上述提议(俗称为Concepts Lite)不同。我听说有一个概念分支,并...

42得票4回答
模板函数作为模板参数

我刚刚在C++中如何以通用的方式实现某些内容感到困惑。这有点复杂,让我一步一步地解释。 考虑以下代码: void a(int) { // do something } void b(int) { // something else } void function1(...

39得票1回答
有没有一种特性可以指定数字功能?

我希望使用一个特质来限定泛型类型,就像这个假想的 HasSQRT: fn some_generic_function<T>(input: &T) where T: HasSQRT, { // ... input.sqrt() // ... ...

29得票3回答
嵌套名称限定符

我有一段代码,类似这样: namespace mymap { template <class Key,template <typename T > class Allocator> myownmap { typedef pair<cons...

29得票4回答
为什么 Haskell 标准库没有更多地使用多态性?

我正在学习Haskell,类型类似乎是一种强大的方式,可以创建类型安全的多态函数。但是很多Haskell预定义函数并未使用它们,具体来说: 大多数列表函数无法与其他数据结构一起使用(例如,foldr 和 length 仅适用于列表,无法用于数组)。 像 Data.ByteString 这样...