tinytracer

  • 实践
    • CTF
    • 项目实践
  • 技术
    • C++
    • 逆向与汇编
    • 区块链安全
  • 探索
    • OWASP汉化
    • SQL
    • Kali
型别推导
C++

Effective Modern C++之旅——探索编译器型别推导

掌握查看型别类型推导结果的方法 IDE编辑器 IDE中的代码编辑器通常会在你将鼠标指针悬停至某个程序实体,如变量、形参、函数等,会提示该实体的型别。例如下面的代码: const int exp = 42; auto x = exp; auto y = &exp; IDE会告诉你,x的型别是int,y是const int *。IDE推导类型的工作原理是让C++编译器(至少也是其前端)在IDE内执行一轮。如果该编译器不能在分析你的代码是得到足够的信息,自然也就无法得出型别推导的结果。对于像int这种内置的型别,…

2018年6月8日 0条评论 3256点热度 0人点赞 Chernobyl 阅读全文
C++

Effective Modern C++之旅——decltype探幽

理解decltype 在C++中,对于给定的变量或表达式,decltype能够告诉你变量或表达式的型别。大部分情况下,它告诉你的结果和你预测的是一致的,不过偶尔也会有一些“非正常”情况,让你面对推导结果时抓耳挠腮。 先从一般的情况讲起——那些不会引发意外的案例 const int i = 0;//decltype(i)是const int bool f(const Widget& i);//decltype(w)是const Widget&,decltype(f)是bool(*)(const Wid…

2018年6月7日 0条评论 3753点热度 0人点赞 Chernobyl 阅读全文
C++

Effective Modern C++之旅——auto型别推导

理解auto型别推导 如果你已经了解了有关模版型别推导的规则,那么你已经基本了解有关auto型别推导了,因为auto型别推导除了一种特殊情况外,其他与模板型别推导并无二致,它们之间确实也存在双向的算法变换。 在模版型别推导一章中,编译器会利用传入参数来推导模版参数的型别以实例化模版函数 template<typename T> void f(T param); f(expr); 当某变量使用auto来声明时,auto就扮演了模版中的T这个角色,而变量类型扮演的是expr。下面的代码展现了这种有趣的映射关…

2018年6月7日 0条评论 3613点热度 0人点赞 Chernobyl 阅读全文
C++

Effective modern C++之旅——模版型别推导

模版型别推导 函数模版大致形如 template<typename T> void f(ParamType param); 模版函数的调用形如 f(expr); 在编译期,编译器会通过expr推导两个类别。一个是T的类别,一个是ParamType的类别。由于ParamType常包含修饰词(如const T&),ParamType的类别可能会与T类别不同。 T的类别推导结果和传递给函数的实参类型不一定相同。T的类别推导结果,不仅仅与expr类型有关,还与ParamType的形式有关。分为以下三种情…

2018年6月7日 0条评论 3167点热度 0人点赞 Chernobyl 阅读全文

COPYRIGHT © 2021 tinytracer.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang