如何使用JNI
废弃std::iterator
在C++14之前,所有的Iterator都是继承自std::iterator类,在这个类中定义了五个type
1 | template<class Category, class T, class Distance = ptrdiff_t, |
Guaranteed copy elision 缺省复制
在c++17上,通过对value category修改,glvalue提供要被初始化的对象的地址,prvalue提供initializer。
1 | #include <iostream> |
所以上面的代码,在c++17之前是编译不过的,A a = A() 这里调用了move构造,虽然编译器会优化掉,不会真正调用,但是move构造必须留着,不能删除。
但是在c++17后,是直接在value category层级,就保证了不会调用move构造。