C++ C++';s std::Scala中的前向等效

C++ C++';s std::Scala中的前向等效,c++,scala,templates,C++,Scala,Templates,在Scala中,C++的std::forward是否有一个等价物 例如,我想在Scala中创建一个类似于C++代码的代码: #包括 使用名称空间std; 类实体{ 公众: 实体(字符串作者,int somethingElse):作者(作者),somethingElse(somethingElse){ } 模板 静态实体应用(Args&&…Args){ 返回实体(std::forward(args)…); } 私人: 字符串作者; intsomethingelse; }; int main(){

在Scala中,C++的
std::forward
是否有一个等价物

例如,我想在Scala中创建一个类似于C++代码的代码:

#包括
使用名称空间std;
类实体{
公众:
实体(字符串作者,int somethingElse):作者(作者),somethingElse(somethingElse){
}
模板
静态实体应用(Args&&…Args){
返回实体(std::forward(args)…);
}
私人:
字符串作者;
intsomethingelse;
};
int main(){
实体e=实体::应用(“你好”,123);
返回0;
}                                                                                           
因此,这段代码的主要特点是,当我更改
实体
类的构造函数时,我不必为
应用
方法维护相同的参数列表,因为它是由编译器自动推断的。这些类型也在编译时进行验证,构造函数中的类型可以不同。它们不会被铸造到其他任何东西(即,它们不会被铸造到
void*

在Scala中,我想创建如下代码:

import org.scalajs.dom
案例类实体(作者:字符串,元素:dom.element){
}
对象实体{
def应用(/*???*/):实体={
新实体(/*???*/)
}
}

Scala编译器自动实现
apply
,并将相同的参数应用到case类<代码>案例类实体(作者:字符串,元素:Int)。。。相同:
实体(“a”,1)
实体。应用(“a”,1)
新实体(“a”,1)
。这就是您要寻找的,还是要从类型中抽象参数列表?这确实是另一种语言中超级复杂解决方案的一个很好的示例,您只需在Scala中免费获得,在Scala中,这类事情是开箱即用的。@yǝsʞǝla我想知道我是否可以在另一个方法中使用的方法中使用相同的参数列表。实际上,
apply
函数是由编译器为case类自动生成的(我错过了这一个),但是如果我想创建一个更复杂的
apply
函数,我可能需要以某种方式重写默认函数,问题会再次出现。除非我遗漏了什么!完整免责声明:我是Scala新手!(但你已经知道我猜:D)