问题标签 [compiler-generated]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1927 浏览

c++ - 是否有任何 C++ 运算符重载基于其他运算符自动提供?

假设我正在编写一个int包装器,并且需要提供每个运算符重载。作者必须列出每一个,还是可以根据作者提供的内容自动生成?编译器可以/是否从现有的运算符中推断出任何新的自动定义运算符?

如果我定义operator==,它会operator!=自动给我一个吗?或相反亦然?

如果我定义operator++(),我可以operator++(int)免费获得吗?或相反亦然?

+=打字业务怎么样?它可以结合现有的operator+with定义吗operator=定义来生成operator+=吗?理论上它应该是可能的,但它是可能的吗?

>=to等的相同问题<,还是我必须完整列出>, >, >=,的定义<=

0 投票
1 回答
663 浏览

c# - C# async/await 读取 DbDataReader 的效率(或滥用)

偶然发现了一段相对常用的代码,起初似乎效率低下。(我知道优化有时可能是邪恶的,但我想知道)

介绍部分 - 相当简单的 SP 执行 + 读取返回的数据:

让我担心的是功能

等待 GetProjectElement(读者)

正如你所看到的,有很多等待调用编译器会变成状态机,不是吗?

您可以在此处找到编译器生成的代码的简化版本。大量的 GOTO 意味着一遍又一遍的上下文切换。

由于 SP 是在没有指定 CommandBehavior 的情况下执行的 - 数据将处于非顺序模式。Project (可能原因是对于这种链接情况,表行的字节数不应该很大)


我的问题是

1)这是在没有明显原因的情况下滥用异步/等待,因为行数据已经缓冲在内存中,对吗?

2)Task<Project>在这种情况下是纯开销吗?

await3)与没有ing的方法相比,这种方法的性能实际上会更差吗


最后的想法:如果我做对了,我们会希望对内容可能超过合理长度的大型表行使用 CommandBehavior.SequentialAccess,从而使我们想要异步读取它?(如存储 varbinary(max) 或 blob)

0 投票
1 回答
52 浏览

scala - 对于 `case class Cc(a: Int, b: Int) extends MyTraitA`,`MyTraitA` 与 `Product` 和 `Serializable` 特征一起出现在哪里?

由于 Scala 中的继承线性化,我想了解我为案例类指定的特征是如何相对于 Scala 编译器自动生成和添加的两个特征进行排序的;即Product with Serializable(令人失望的是,它不是ProductN[...]从 2.12 开始的)。

我已经非常彻底地搜索了,我还没有找到它直接解决的问题。鉴于以下情况:

在 Scala 编译器自动生成代码之后,关于生成的继承顺序,以下哪一项是正确的假设?

  1. case class Cc(a: Int, b: Int) extends MyTraitA with MyTraitB with Product with Serializable
  2. case class Cc(a: Int, b: Int) extends Product with Serializable with MyTraitA with MyTraitB

然后,我还有一个问题。Product2[...]如果我明确地扩展到案例类,会发生什么不良或意外的影响?以下是插入重复的上述两段代码Product2[...]

  1. case class Cc(a: Int, b: Int) extends MyTraitA with MyTraitB with Product2[Int, Int] with Product with Serializable
  2. case class Cc(a: Int, b: Int) extends Product with Serializable with MyTraitA with MyTraitB with Product2[Int, Int]

IOW,是否存在任何不良的相互作用,因为两者ProductProduct2一起出现?

0 投票
1 回答
106 浏览

scala - 为什么在案例类的`unapply`方法的实现中有`null`检查?

我正在努力unapply用我自己的实现替换案例类的伴随对象上的方法。在调查了许多与 implementation 相关的不同切线之后unapply,似乎null在它们中的大多数中都有一个保护,无论是在编译器生成的代码中,还是在它被显式重新定义的实现中。编译器生成的代码unapply看起来与此类似(其中一些使用eq而不是ne):

鉴于null在纯(即惯用的)Scala 代码中绝对不应该使用,为什么null要执行此检查?它是否与 Java 互操作(因为 Java 仍然沉迷于利用null)泄漏到unapply方法中有关?如果我删除了检查,因为我已经消除了unapply传递方法的案例类实例可能为空或无效的可能性,我会遭受什么(如果有的话)不良后果?IOW,用这个替换上述实现有什么害处?

0 投票
2 回答
807 浏览

c++ - 此代码是否会产生物化的基本纯右值,是否应该编译?

以下代码在 gcc 9.1 godbolt中编译,但在 clang 8 godbolt中编译:

Clang的错误:

哪个是正确的,为什么?

0 投票
1 回答
37 浏览

swift - 使用 Coco/R 翻译源代码后如何测试输入条件?

我有一个要在 Swift 中测试的函数。它是使用 Coco/R 生成的。我有一个输入语句,我想测试它是否使用生成的代码(Parser.swift)提供所需的输出。

我还没有尝试过任何东西,因为我不知道从哪里开始。

预期结果:输入文件:a = 10 b = 5 输出:15

0 投票
1 回答
106 浏览

c++ - 当不是所有成员都初始化时,可以复制普通类型类吗?

(我刚刚意识到我首先需要解决复制联合的一个更基本的问题:复制联合对象时,是否创建了成员子对象?请先查看其他问题。)

类的隐式生成的复制操作(构造函数和赋值)执行逐个成员的复制(初始化或赋值)。(对于普通类型,这些是相同的。)

因此,无法复制具有某些未初始化成员的类,因为访问未初始化的对象是非法的。

但是一个联合总是可以被复制,即使它包含类成员,其中一些没有初始化(因为......根据定义,联合的两个成员没有被初始化)。

这是否意味着复制具有未初始化成员的类的联合是合法的:

如果是这样,可以通过强制转换到这样的联合来复制类吗?

0 投票
0 回答
70 浏览

c# - 检测C#方法是否使用yield return

我正在尝试编写一个简单的缓存机制。基本上,每当调用一个方法时,它的返回值都应该保存在缓存中。使用AOP,我的简化 CacheAspect 如下所示。

但是,当切面截获使用yield return的方法时,它只缓存编译器生成的状态机,而不是物化结果。因此,在这种情况下,我希望方面能够快速失败。

因此,我想从方法的返回值中扣除它是否使用收益返回。到目前为止,我只找到了可以完成工作的解决方案。

我的问题是我不知道还有哪些其他编译器生成的类型以及它们出现的情况。是否有可能从我的缓存机制中排除不应排除的方法?或者换一种说法:有没有办法更具体地针对使用收益返回的方法?

0 投票
1 回答
48 浏览

c# - 表达式、常量列表、编译器生成的类

我有这个简单的代码:

解析表达式时,Index2 显示为 ConstantExpression。然后类似于本网站和其他地方的许多示例,我有这种解析 ConatantExpression 值的方法:

问题出在这个方法的返回类型上,返回值的类型是:

{Name = "<>c__DisplayClass38_0" FullName = "S_Common.A_Dictionary`2+<>c__DisplayClass38_0[[S_Common.StringIndex, S_Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[DummyTestApp.test, DummyTestApp,版本=1.0.0.0,文化=中性,PublicKeyToken=null]]"}

在 QuickWatch 中可以找到底层的 List,但几乎没有办法在代码中引用它。

0 投票
0 回答
721 浏览

c# - .NET 5 源代码生成器。如何使用还引用的程序集

我尝试使用 .NET 5 Source Generators 从命令和查询开始生成 webapi 控制器。

我为此使用这篇文章 [示例] https://www.edument.se/en/blog/post/net-5-source-generators-mediatr-cqrs

但我想在外部项目引用程序集中使用命令和查询类在 webapi 项目中生成控制器,但我不明白如何为此向语法接收器提供指令。

我的解决方案的结构是:

项目

SourceGenerator.csproj

Application.csproj

WebApi.csproj