type-alias相关内容

我可以使用相同的名称为周围范围内的类型声明成员类型别名吗?

出于元编程目的,我希望结构包含另一个类型的类型别名: struct Foo {};结构 WithNestedTypeAlias {使用 Foo = Foo;}; 然后我可以在模板等中执行 WithNestedTypeAlias::Foo 之类的操作. 据我了解,这种类型别名是有效的,因为它不会改变 Foo 类型的含义.Clang 愉快地编译了这个. 但是,GCC 抱怨: test ..
发布时间:2022-01-23 20:38:40 C/C++开发

如何将符合具有关联类型的协议的不同类型添加到集合中?

作为学习练习,我正在用 Swift 重写我的验证库. 我有一个 ValidationRule 协议,它定义了各个规则应该是什么样子: 协议验证规则{类型别名输入类型func validateInput(input: InputType) ->布尔值//...} 关联类型 InputType 定义要验证的输入类型(例如字符串).它可以是显式的或通用的. 这里有两个规则: struc ..
发布时间:2021-12-15 10:13:51 移动开发

是否可以为函数的泛型类型创建一个具有特征边界的类型别名?

此代码: pub type Foo= fn(bar: T); 产生 错误 E0122(在较新版本的Rust,这只是一个警告): 已尝试向类型别名添加通用约束.这个约束完全被忽略.为了向后兼容,Rust仍然允许此警告.考虑以下示例: trait Foo {}输入 MyType= (R, ());fn 主(){让 t: MyType;} 我们可以声明一个 MyType 类型的变量,尽管事 ..
发布时间:2021-09-09 19:04:22 其他开发

单例对象的抽象类型成员

抽象成员方法在单例对象中是非法的 scala>对象 Foo {|def g: 整数|}def g: 整数^第 2 行:错误:只有特征和抽象类可以声明但未定义的成员 作为抽象值成员 scala>对象 Foo {|val x: 整数|}val x: 整数^第 2 行:错误:只有特征和抽象类可以声明但未定义的成员 但是抽象类型成员在单例对象中是合法的 scala>对象 Foo {|A型|}对象 ..
发布时间:2021-06-13 19:41:29 其他开发

为什么允许使用类型别名作为变量名?

什么规则使以下代码编译没有错误: 使用整数= int;struct Foo{整数};int main(){Foo f;整数f.整数} 使用当然不是 #define integer int 的简单替代,但是是什么使该代码在 int int;看来显然格式良好?会导致格式错误? 解决方案 虽然可以访问在外部作用域中声明的名称,然后隐藏该名称,这有点令人惊讶,但这只是规则的直接应用范围: ..
发布时间:2021-05-28 20:19:56 C/C++开发

“使用"类作用域的类型别名:[何时]方法中的用法能否优先于类型别名?

昨天,当我能够编译具有使用哪些规则涵盖了此行为以及方法主体和方法签名用法之间的区别? 案例1-使用在方法之后声明的方法,在方法体内有效(仅?) #include#include结构X {std :: string create(){//如果在签名中使用Y,则编译失败返回Y {"hello!"};//在此处Y时编译}使用Y = std :: stri ..
发布时间:2021-04-19 20:10:21 C/C++开发

通用类型别名,它们互不兼容

我正在尝试构造某种“通用类型别名",这意味着我想将一个类型定义为 int ,但是要使用一个通用类型参数,这会使它与的实例不兼容.其他类型. 我尝试使用别名模板执行此操作: 模板使用NumberWithSemantics = int; 但是与此有关的问题是,所有实例化,无论类型为 T ,都被认为是相等的,例如: struct A {};结构B {};Numb ..
发布时间:2021-04-19 20:00:40 C/C++开发

TypeScript函数数组

我想知道如何在TypeScript中声明类型函数数组. 例如,假设我有一个字段可以容纳一个没有参数的函数并返回void: private func:()=>空白; 现在,说我想要一个可以容纳此类函数数组的字段: 私有函数:()=>空白 []; 这显然是错误的方法,因为编译器认为这是一个返回空数组的函数. 尝试用括号分隔内联原型声明,如下所示: private fun ..
发布时间:2021-04-09 20:34:23 其他开发

模板化别名声明的部分专业化

在这个问题中,我引出了一个特殊的解决方案,其中涉及对模板化别名声明的部分专门化.通用案例在此答案中进行了描述.假设我有一个模板类 template class X { // .... }; 我不是在让T腾空并专门化其他模板参数的情况下,而是在其他参数取决于T且仅取决于T的情况下.作为一个非常具体的示例(比另一个问题中的示例更易于管理),请考虑模板 ..
发布时间:2020-07-12 04:42:31 C/C++开发

别名模板参数包

剧情 嗨, 也许这个问题是重复的,但是我对模板编程还是比较陌生,实际上我找不到简单和简短解决方案(->仅找到兆字节的" roxxor-template-magic "(我不理解)匹配我的具体和简单问题,因此我现在有点迷失了. 预信息 我想使用"type_container"作为类的模板参数.容器是一个简单的结构,其中还应包含一些用于模板参数包的 typedefs . 问题: ..

> 2类型参数的Scala中缀类型别名?

我知道在Scala中,您可以执行type ===>[A, B] = Map[A, B],然后可以使用中缀符号来定义def foo: String ===> Int,这与说def foo: Map[String, Int]相同.有什么方法可以利用此前缀表示法创建具有> 2个参数的类型?例如,我想要这样的东西: type A ~> B ~~~> C是say Map[A, Pair[B, C]]的 ..
发布时间:2020-07-12 04:42:17 其他开发

Scala类型别名破坏了类型兼容性

我一直认为,如果需要,类型别名总是会扩展到其原始类型.但是,这是一个麻烦制造者 def a[P](a: Option[P]) = { type Res = List[P] // result type alias Nil: Res // Replace this line with Nil: List[P] to clear the error } def b[V](v: V ..
发布时间:2020-07-12 04:41:13 其他开发