本文是對auto和decltype的簡述,更加詳細的內容看文章後參考部分。
一. auto和decltype作用
C++11標準引入了auto和decltype類型説明符,它能讓編譯器幫我們去分析表達式所屬的類型。
auto 的推導能力較弱,而且還有限制。
例如: auto 不能推導數組類型:
int arr[5] = {1};
// auto 不能用於推到數組類型。 因為{arr}純粹是
std::declval 和 decltype
題圖來自於 C++ Type Deduction Introduction - hacking C++ 但略有變形以適合 banner
關於 decltype
decltype(expr) 是一個 C++11 新增的關鍵字,它的作用是將實體或者表達式的類型求出來。
#include iostream
int main() {
int i = 33
單例模式
注意:單例模式會讓程序變得難以測試,所以儘可能不要使用單實例模式。
保證一個類只有一個實例,並且提供了訪問該實例的全局訪問點。
線程安全的單例模式-C++11
Singleton.h
#pragma once
templatetypename T
class Singleton
{
public:
static T instance() {
static T instanc
C++11是C++語言的一個重大更新,引入了許多新特性,包括自動類型推導、lambda表達式、右值引用、智能指針等等。這些新特性使得C++更加現代化、高效、易用。也是面試容很容易被問到一個問題,下面我將簡要介紹一些C++11的新特性
自動類型推導
C++11引入了auto關鍵字,可以讓編譯器自動推導變量的類型。這樣可以減少代碼中的重複代碼,提高代碼的可讀性和可維護性。例如:
auto i = 42