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