智能指针explicit auto_ptr(X* p =0)throw(); auto_ptr(auto_ptr&)throw(); template <class Y> auto_ptr(auto_ptr<Y>&)throw(); auto_ptr& operator=(auto_ptr&)throw();
协变返回值类型BaseGenerator { virtual std::auto_ptr<BaseClass> generate(); }; class SubGenerator: public BaseGenerator { virtual std::auto_ptr<SubClass> generate(); };
Memory (C++标准库)explicit shared_ptr(const weak_ptr<Other>& wp); //0C 由弱指针拷贝构造 template<class Other> shared_ptr(auto_ptr<Other>& ap); //0D 由auto_ptr指针拷贝构造 template<class
Auto (C++)或者保存lambda表达式类型的变量声明: auto ptr = [](double x){return x*x;};//类型为std::function<double(double)>函数对象 在模板函数定义时,如果变量的类型依赖于模板参数,使用auto关键字使得在编译期确定这些类型,如: template
匿名函数auto lambda1 = [ptr = std::move(ptr)] {return *ptr;} //大致等效于: auto lambda2 = [ptr = std::make_unique<int>(10)] {return *ptr;} auto lambda3 = [](auto x