cpp:部分标准特性记录。
This commit is contained in:
		
							parent
							
								
									0ab2bd7394
								
							
						
					
					
						commit
						7a5b3e9849
					
				
							
								
								
									
										32
									
								
								cpp/cpp_standard.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								cpp/cpp_standard.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					# cpp标准简记
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## c++11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`c++11`这里只记录不熟悉的部分。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `typedef`不支持`模板`而`using`支持。
 | 
				
			||||||
 | 
					- 支持模板参数可变长度,使用`...`。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## c++14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 从此标准开始,可以在`constexpr`函数中使用局部变量、循环和分支等简单语句。
 | 
				
			||||||
 | 
					- `auto`能用于`lambda`函数传参。
 | 
				
			||||||
 | 
					- 可以让普通函数具备返回值推导。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## c++17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 可以在`if`和`switch`中定义临时变量。
 | 
				
			||||||
 | 
					- 结构化绑定,`auto [x, y, z]` = `Get()`。
 | 
				
			||||||
 | 
					- 将`constexpr`引入到`if`判断中,实现编译期间完成分支判断。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## c++20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `auto`能用于一般函数传参。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 一些语义
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 引用折叠,参数`T&`无论收到左值还是右值都将折叠成`T&`,参数`T&&`则保留原参数类型。
 | 
				
			||||||
 | 
					- `std::move`和`std::forward`实现都很简单,都是只做了最基本的类型转换。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user