overload-resolution 相关问题

重载分辨率是一种语言机制,可以在几个可行的函数重载中进行选择。即使对于有经验的用户来说,它的规则也很复杂且经常令人惊讶。


为什么要选择此转换运算符重载?

请考虑以下代码。构造任何{template operator T &&()const;模板 运算符T&()const; }; int main(){int a = ...

回答 3 投票 13

非捕获lambda和函数指针作为函数重载时的模糊性参数

#include #include template void test(std :: function f){T val {}; f(val); std :: cout <

回答 1 投票 1

Kotlin:重载分辨率不明确

[新到科特林。我正在使用Apache Camel,并使用过程转换器创建了一条路由,如下所示:from(“ snmp:blahblah ...”).routeId(“ CamelSnmpRoute”)... .process {...

回答 1 投票 0

在静态编译的Groovy中调用最特定的重载

由于Groovy动态方法调度了以下代码,所以我希望它是ABC。添加@CompileStatic之后,我的代码仅打印AAA就中断了。如何保留动态方法的逻辑...

回答 1 投票 1

具有{}的函数重载分辨率

因此,我们的C ++库允许用户使用可变参数构造函数传递包装在类中的值列表,以便可以在编译时检查这些列表的长度。我正在尝试添加一些新的...

回答 1 投票 3

即使看起来更合适,也不会考虑过载

这被gcc(在godbolt上运行)和clang都拒绝了:#include 名称空间{std :: string to_string(char const(&str)[14]){return str; }} void f(){使用...

回答 2 投票 3

派生类的指针的重载分辨率

我接受一个指向基类的指针,然后根据其派生类型调用不同的函数。 [编辑问题是:accept是Manager类的公共方法,该方法处理和存储很多A,...

回答 1 投票 1

如果您有两个同名的函数(已重载),并且有一个转换构造函数,那么转换构造函数将被称为吗?

假设您重载了一个函数:void display_widget(float f); void display_widget(Apple a);我的问题是,哪一个优先级更高:构造Apple的转换构造函数...

回答 1 投票 1

使用nullptr作为参数的函数重载决策

请考虑以下代码。虽然fun的两个重载接受指针,但将nullptr传递给fun不会导致任何编译错误。然而,非常相似的函数bun无法编译。什么时候 ...

回答 1 投票 4

为什么C ++编译器选择了错误的函数(模板)

我做了一些测试并遇到了这种奇怪的行为。 struct A {};结构B:A {}; #包括 模板 void fn2(T const&){} void fn2(A const&){std :: ...

回答 1 投票 2

在C#6中突破方法重载决策的变化 - 解释?

我们最近从公司的VS2013搬到了VS2017。升级后,我们的代码库将不再构建。我们会收到以下错误:以下内容之间的调用不明确...

回答 1 投票 30

重载分辨率和虚拟方法

考虑以下代码(它有点长,但希望你可以遵循):类A {}类B:A {}类C {public virtual void Foo(B b){Console.WriteLine(“base.Foo(B) “); ...

回答 5 投票 21

方法重载决策系统如何决定在传递空值时调用哪个方法?

例如,你有一个类型:public class EffectOptions {public EffectOptions(params object [] options){} public EffectOptions(IEnumerable options){} ...

回答 2 投票 33

为什么在非泛型存在时选择通用方法?

下面的程序产生这个输出:Foo 由于StackOverflowException,调用Process终止。所以,Foo(baz)称通用Foo ,但巴尔(巴兹)递言并且不打电话......

回答 3 投票 8

从C ++中的子类调用重载的父方法

我试图了解是否可以从子类调用父级的函数成员。基本上我有以下代码:struct Parent {template void doFoo(...

回答 1 投票 -1

函数调用中的单元素向量初始化

请考虑以下示例代码:示例:void print(int n){cout <<“element print \ n”; } void print(vector vec){cout <<“vector print \ n”; } int main(){/ * ...

回答 3 投票 6

为什么不过载?

写在Jooq助手类上。 (一旦我想出来,就会添加更多特定于业务的方法......)import org.jooq。* import org.springframework.stereotype.Repository import javax ....

回答 1 投票 4

如何强制Java调用重载Kotlin方法接受不可为空的参数?

在Kotlin中,我在一个对象上定义了两个重载方法。它们具有相同的签名,除了在一种情况下,参数可以为空,而在另一种情况下,相同的参数不是。基于......

回答 1 投票 0

T与SomeClass的模板函数重载决策

我想理解为什么void handleParam(const Str&name,Table 值)模板重载永远不会被实例化(注意下面的代码是说明性的)。我确定有......

回答 1 投票 0

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