1樓:碧水溪風
說個真事,同事n年c++開發經驗,c++特別溜。有一次我拿typedef和#define反過來覆過去問他,一分鐘不到他就懵圈了,根本分不清typedef和#define該怎麼用了。
2樓:原子筆
using 是C++11用來擴充套件typedef 的, 不在typedef上擴充套件是為了盡可能保持C語言的相容性。
畢竟typedef屬於C語言的遺產,C++標準委員會在擴充的時候盡量避免未來可能的和C的不相容(畢竟C語言有故意製造和C++不相容的事情了),例如C語言某天打算給typedef來點什麼特色啥的
3樓:Holy Chen
如下所示,using 可以用於模板別名,typedef 不可用於模板別名。
#include
template
class A
};template
using B = A;
template
typedef A C;
int main()
4樓:馮半錢
說個特別的用法
// type alias can introduce a member typedef name
template
T>struct Container ;// which can be used in generic programming template Container >void fn2( const Container&c )// 2016/08/25 補 intmain() 土地測量員 詳細講一下std unique ptr的部分吧。std unique ptr需要明確知道型別的析構函式 unique ptr型別是 template class T,class Deleter std default delete class unique ptr private T p... 槓吐血評論員陶某 move應該是針對你的物件中有在堆上分配記憶體這種情況而設定的,你舉的例子恰好不符合這種情況。看下面這個例子 classA A A A other A operator A other return this int p int main A中有堆上分配的變數p時,呼叫move語義... 徐辰 因為C 他爹早就看0這個magic number不爽了,當年沒顧上搞,一直拖到2011年了,再不瘋狂一把C 就沒人用了。 enpeng xu 問題的關鍵是c 不知道怎麼正確做void 到 T 的預設轉換,所以多此一舉的引入了nullptr。某些情況做下c 編譯器不知道怎麼把 void ptr正...c 11中std unique ptr需要明確知道型別的析構函式,而shared ptr不需要?
C 11中的move語義減少了臨時物件和物件複製嗎?
C 11為什麼引入nullptr?