c++ - Scala 和 C++11 的类型推断有什么区别?

标签 c++ scala c++11 type-inference language-comparisons

我很好奇 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/

相关文章:

c++ - 初始化基类成员的首选方法 (c++)

c++ - 为我将在 std::map 中使用的对象数组分配和释放内存的正确方法

c++ - 获取 FreeImage 像素数据格式?

scala - 如何使用 DataFrames 来利用 Cassandra 分区器?

java - 如何以特定帧速率更新 Swing Canvas ?

c++ - 在 I/O 中使用 char16_t 和 char32_t

c++ - g++4.9 错误允许 std::vector<C_type_array>

通过 shared_ptr 访问写方法时 async_write 上的 C++ Boost.Asio 段错误

c++ - OpenGL 3.x核心sampler2DRect (GL_TEXTURE_RECTANGLE)示例

scala 脚本来观看 mongo oplog