小编Rob*_*oll的帖子

隐式转换多个级别,为什么int要自动工作?

我一直认为在scala中不可能进行多级隐式转换(除非你定义视图边界:http://docs.scala-lang.org/tutorials/FAQ/context-and-view-bounds.html)

但似乎类型系统存在缺陷或不一致.以下示例(改编自如何在Scala中链接implicits?)

class A(val n: Double){
  def total = n + 10
}

object T1{
  implicit def toA(n: Double): A = new A(n)
  val i : Int = 5
  println(i.total) //Why does this work?
  println(5.2.total)
}
Run Code Online (Sandbox Code Playgroud)

我真的不明白为什么Int - > Double - > A的隐式转换有效.有人可以解释原因吗?谢谢

scala

9
推荐指数
1
解决办法
4693
查看次数

c ++返回指针与使用std :: move返回本地对象

我必须创建一个为我创建一组字符的函数.我不确定我应该选择以下哪种方法.据我所知,我不应该使用createSet1,因为如果在返回s之前出现问题,它将会泄漏.

set<char>* createSet1(){
    set<char>* s = new set<char>;
    //does something
    return s;
}

set<char> createSet2(){
    set<char> s;
    //does something
    return std::move(s);
}

unique_ptr<set<char>> createSet3(){
    unique_ptr<set<char>> s(new set<char>);
    //does something
    return s;
}
Run Code Online (Sandbox Code Playgroud)

如果有人可以解释我应该选择哪一个以及为什么,我会很高兴.

c++ memory-management

3
推荐指数
1
解决办法
184
查看次数

标签 统计

c++ ×1

memory-management ×1

scala ×1