局部類型或匿名類不能用作模板參數(shù)。
C++ 不支持函數(shù)嵌套,但是我們可以通過函數(shù)對(duì)象來間接實(shí)現(xiàn)它。
#
數(shù)字符(或稱‘字符串化’操作符)把擴(kuò)展后的宏參數(shù)轉(zhuǎn)化成字符串常量。 它僅與帶參數(shù)的宏一起使用。
如果它在宏定義中定義在形參前面,那么由宏調(diào)用傳遞進(jìn)來的實(shí)參是被引號(hào)括起來的,并且被當(dāng)做一個(gè)字符串語意來對(duì)待。
這個(gè)字符串會(huì)替代每一個(gè)在宏定義中出現(xiàn)的‘字符串化’的操作符和形參。
符號(hào)傳遞操作符
雙數(shù)字符(或稱“符號(hào)傳遞”操作符),有時(shí)也被稱為合并操作符,用在類似對(duì)象以及類似函數(shù)的宏中。 它允許分開的若干符號(hào)被合并成一個(gè)符號(hào),因此它(##)不能作為宏定義中第一個(gè)或者最后一個(gè)出現(xiàn)的符號(hào)。
除了以下情況,盡量避免使用預(yù)處理宏:
- #include 守衛(wèi)
- 增強(qiáng)可移植性或方便調(diào)試的條件編譯(在 cpp 文件中,而不是在 .h 文件中)。
- 使用 #pragmas 來禁止一些無意義的警告。#pragmas 通常應(yīng)該放在 “移植性的條件編譯” 守衛(wèi)中以防止編譯器不能識(shí)別該指令而發(fā)出警告。
文章來源:
http://my.donews.com/robinchow/2007/02/11/wkibsjwatiheajluxlmvybkwnutbvifrtotm/