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...