C++primer练习16.17-21
练习16.17
::没有,当表示为一种类型的时候用typename
练习16.18
(a)违法,每个模板参数都要有一个typename或者class
(b)非法,模板参数名为掩盖
(c)inline要写在返回类型前
(d)合法
(e)非法,这命名冲突
练习16.19
template<typename T > void print(T& a) { for(typename T::size_type d=0;d!=a.size();++d) std::cout<<d<<std::endl; } int main () { std::vector<int> a={1,2,3,5,6,7,8,9}; print(a); }
练习16.20
template<typename T > void print(T& a) { for(typename T::iterator d=a.begin();d!=a.end();++d) std::cout<<*d<<std::endl; } int main () { std::vector<int> a={1,2,3,5,6,7,8,9}; print(a); }
练习16.21
class DebugDelete{ public: DebugDelete(std::ostream &s=std::cerr):os(s){ } template <typename T>void operator()(T*p)const { os<<"deleting unique_ptr"<<std::endl;delete p; } private : std::ostream &os; };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具