深入理解C 11 讀書筆記 二 穩定性和相容性

2021-08-21 08:56:41 字數 1251 閱讀 8850

c99標準在c++98之後,因此c++11為了相容c99,增加預定義巨集

預定義標誌 __func__

_pragma操作符

變長引數巨集定義

#define pr(...) printf(__va_args__);

#define

log(...) fprintf(stderr,__va_args__);

c和c++混編時經常有

#ifdef __cplusplus

extern "c"

#endif

#if __cpluscplus < 201103l

#error "should use c++11 implementation"

#endif

#ifndef _complex_h_

#error "never usedirectly;includeinstead."

#endif

static_assert (bool, char * txt)
#define boost_static_assert(e)

do}while(0)

template

void fun() noexcept(noexcept(t())) {}

其中第二個noexcept接收的引數是乙個是否會丟擲異常的表示式。利於泛型程式設計。

struct d

}

template

class base

using unaccessbase = base

using accessbase = base

因此改進的方案是 顯示例項化模板,宣告外部模板例項

//delcare t.h

template

void funt();

extern funt();

//defination a.cpp

void funt()

//use b.cpp

C 11特性 《深入理解C 11 讀書筆記

新增關鍵字 struct alignas 32 colorvector 沒有alignas關鍵字的話,對齊到8位,加上的話,對齊到32位,能提公升效率。對齊的資料在讀寫上會有效能上的優勢。比如頻繁使用的資料如果與處理器的快取記憶體器大小對齊,有可能提高快取的效能。而資料不對齊可能造成一些不良的後果,...

《深入理解C 11 新特性解析與應用》 讀書筆記

第六章 在 c 11中,nullptr 是乙個所謂的 指標空值型別 的常量,指標空值型別被命名為nullptr t。nullptr 是有型別的,且可以被隱式地轉化為指標型別。第二章異常機制會帶來一些額外開銷,比如函式丟擲異常,會導致函式棧被依次地展開,並依幀呼叫在本幀中已構造的自動變數的析構函式等。...

深入理解C 11 讀書筆記 四 易於編碼的特性

template sum t1 t1,t2 t2 doubel foo float bar const auto a foo const double volatile auto b bar volatile float auto d a double auto e a const double i...