FerrisYu

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2020年1月30日

摘要: 将博客搬至CSDN https://blog.csdn.net/yufei_email 阅读全文
posted @ 2020-01-30 15:56 FerrisYu 阅读(54) 评论(0) 推荐(0) 编辑

2018年1月23日

摘要: std::function Lambda 表达式的本质是一个函数对象。当 Lambda 表达式的捕获列表为空时,Lambda 表达式还能够作为一个函数指针进行传递,例如: #include using foo = void(int); // 定义函数指针, using 的使用见上一节中的别名语法void fu... 阅读全文
posted @ 2018-01-23 00:00 FerrisYu 阅读(285) 评论(0) 推荐(0) 编辑

2018年1月16日

摘要: Lambda 表达式是 C++11 中最重要的新特性之一。类似匿名函数,当需要一个函数但是又不想费力去命名时使用。这样的场景其实有很多,所以匿名函数几乎是现代编程语言的标配。 Lambda 表达式基础 Lambda 表达式的基本语法如下: [捕获列表](参数列表) mutable(可选)异常属性 -> 返回类型 {// 函数体}捕获列表,可以理解为参数的一种类型。lambda 表达式内部函... 阅读全文
posted @ 2018-01-16 22:05 FerrisYu 阅读(424) 评论(0) 推荐(0) 编辑

2018年1月11日

摘要: 强类型枚举 在传统 C++中: 枚举类型并非类型安全,枚举类型会被视作整数。两种完全不同的枚举类型可以进行直接的比较(虽然编译器给出了检查,但并非所有) 。 枚举类型的枚举值名字不能相同,这不是我们希望看到的结果。 C++11 引入了枚举类(enumaration class) ,并使用 enum class 的语法进行声明: enum class new_... 阅读全文
posted @ 2018-01-11 00:26 FerrisYu 阅读(210) 评论(0) 推荐(0) 编辑

2018年1月10日

摘要: 委托构造 C++11 引入了委托构造的概念,可以在一个构造函数调用另一个构造函数,从而达到简化代码的目的: class Base {public:int value1;int value2;Base() { value1 = 1; } Base(int ... 阅读全文
posted @ 2018-01-10 23:40 FerrisYu 阅读(353) 评论(0) 推荐(0) 编辑

2018年1月8日

摘要: 外部模板 传统 C++ 中,模板只有在使用时才会被编译器实例化。换句话说,只要在每个编译单元(文件) 中编译的代码中遇到了被完整定义的模板,都会实例化。这就产生了重复实例化而导致的编译时间的增加。并且,我们没有办法通知编译器不要出发模板实例化。 C++11 引入了外部模板,扩充了原来的强制编译器在特定位置实例化模板的语法,使得能够显式的告诉编译器何时进行模板的实例化: template ... 阅读全文
posted @ 2018-01-08 23:13 FerrisYu 阅读(380) 评论(0) 推荐(0) 编辑

2018年1月6日

摘要: VA setting:Suggestions --> Edit VA Snippets --> Type -->Refactoring --> Document Methodset content as above VS shortcut setting:tools --> options --> 阅读全文
posted @ 2018-01-06 15:10 FerrisYu 阅读(999) 评论(0) 推荐(0) 编辑

摘要: 一. 传统C++ 传统 C++中,普通数组、没有构造析构和虚函数的类或结构体都可以使用 {} 进行初始化,也就是我们所说的初始化列表。而对于类对象的初始化,要么需要通过拷贝构造、要么就需要使用 () 进行,不支持{}。 int arr[3] = { 1,2,3 }; // 列表初始化class Foo{private:int ... 阅读全文
posted @ 2018-01-06 00:08 FerrisYu 阅读(1788) 评论(0) 推荐(0) 编辑

2018年1月5日

摘要: 基于范围的 for 循环 C++11 引入了基于范围的迭代写法,我们拥有了能够写出像 Python 一样简洁的循环语句: int array[] = { 1,2,3,4,5 };for (auto &x : array){std::cout arr(5, 100);for (auto &i : arr) {std::cout << i << ... 阅读全文
posted @ 2018-01-05 23:49 FerrisYu 阅读(459) 评论(0) 推荐(0) 编辑

摘要: -A1 -S -w -m -U -p -Y -xC200 --convert-tabs --indent-namespaces --indent=spaces=4 阅读全文
posted @ 2018-01-05 20:45 FerrisYu 阅读(1078) 评论(0) 推荐(0) 编辑

2018年1月4日

摘要: C++11 引入了 auto 和 decltype 这两个关键字实现了类型推导,让编译器来操心变量的类型。这使得 C++ 也具有了和其他现代编程语言一样,某种意义上提供了无需操心变量类型的使用习惯。 一. auto C++11之前:如果一个变量没有声明为 register变量,将自动被视为一个 auto 变量。 C++11开始:register 被弃用,auto赋予了其他... 阅读全文
posted @ 2018-01-04 23:52 FerrisYu 阅读(357) 评论(0) 推荐(0) 编辑

2018年1月3日

摘要: 一.nullptr 示例: #include void foo(char * c){}void foo(int n){}int main(){foo(0);// foo(NULL); // ... 阅读全文
posted @ 2018-01-03 22:40 FerrisYu 阅读(672) 评论(0) 推荐(0) 编辑