
C++
maxmit
这个作者很懒,什么都没留下…
展开
-
C++ 类型推导(四)获取编译器推导出的类型
获取编译器推导出的类型ide编译时获知template<typename T>class TD;auto x = 10;TD<decltype(x)> x_type;编译时由于类TD未定义,会打印错误信息,包含了x的类型标准库工具tyepidauto x = 10;std::cout<<typeid(x).name()<<std::endl;boost/type_index.hpp前面的方法由于标准的原因,得到的结果都会有所不原创 2021-04-14 17:04:54 · 253 阅读 · 0 评论 -
C++ 类型推导(三)decltype关键字
decltype 关键字decltype 关键字会保留一个类型的所有信息const int i = 0;//decltype(i)->const int bool f(const Widget&w);//decltype(f)-> bool (const Widget&); //decltype(f(w))->boolstruct Point{int x,y;}利用decltype实现函数返回值的类型推导(c++11)template<原创 2021-04-14 16:57:42 · 174 阅读 · 0 评论 -
C++ 类型推导(二)auto关键字
auto 关键字auto 关键字和模板推导的规则大体一致,但是在面对初始化列表时,有所不同。auto与初始化列表auto a = {1,2,3}//a->std::initialize_list<int>函数模板与初始化列表template <typename T>void f(T param)f({1,2,3})//error can't deducetemplate <typename T>void f(std::initializer_原创 2021-04-14 16:26:25 · 172 阅读 · 0 评论 -
c++类型推导(一)模板推导
模板推导指针或者引用(不为通用引用)多退少补为引用时如果传入参数是引用则忽略引用部分,其他部分照常处理template<typename T>void f(T& param);int x = 27;const int cx = x;const int& rx = x;f(x);//T->int,param->intf(cx);//T->const int,param->const intf(rx);//T->const i原创 2021-04-13 22:29:38 · 322 阅读 · 0 评论 -
c++ 构造、复制、析构
文章目录title构造函数拷贝构造函数合成拷贝构造函数拷贝初始化的调用场景拷贝赋值函数移动构造函数移动赋值函数析构函数othertitle构造函数使用explicit消除隐式类型转换,编译器只允许一次的自动类型转换拷贝构造函数合成拷贝构造函数即使已经定义了一个拷贝构造函数,编译器还是会产生一个默认的拷贝构造函数,其将对应的值挨个进行拷贝。拷贝初始化的调用场景将一个对象作为实参传递给一个非引用类型的形参从一个返回类型为非引用类型的函数返回一个对象(栈上的对象必须被销毁)用花括号列表初原创 2021-04-13 17:52:08 · 314 阅读 · 0 评论 -
C++ stringstream 重复使用
#include<string>#include<sstream>using namespace std;int main() { int n1 = 2, n2 = 3; string s1, s2; stringstream ss; ss << n1 << n2; ss >> s1; ss.str("");//清空buffer ss.clear();//初始化流状态 ss &l原创 2021-04-13 15:54:14 · 690 阅读 · 0 评论 -
c++ string find 方法
size_t find (const string& str, size_t pos = 0) const noexcept;size_t find (const char* s, size_t pos = 0) const;size_t find (const char* s, size_t pos, size_type n) const;size_t find (char c, size_t pos = 0) const noexcept;查找目的字符串中str的首次出现位置,str可转载 2021-04-08 19:24:45 · 315 阅读 · 0 评论