我很好奇 Scala 和 C++11 的类型推断有什么区别。在哪些情况下,我必须用一种语言指定类型,而不能用另一种语言指定类型?一个区别似乎是必须在 C++11 中指定的函数的返回类型,尽管 decltype
和带有尾随返回类型的新函数语法允许指定推断类型。
最佳答案
C++ 无法推断出这样的匿名函数:
// this wont work*
void somefunc(std::vector<int>& v)
{
std::for_each(v.begin(), v.end(), [](auto &x) { x++; });
}
// /\
// ------ I want this to be infered
而 Scala 可以:
def somefunc(v: Vector[Int]) = v.map(x => x +1)
*不确定我是否正确处理了 C++ 代码语法,我不侮辱语言,但这真的很神秘。如果我犯了错误,请纠正我,请
关于c++ - Scala 和 C++11 的类型推断有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256817/