2009-06-26 73 views
3

Evolution WG Issues List of 14 February 2004已...什麼是#nomacros(EP003),它還活着嗎?

EP003。 #nomacros。見EI001。請注意0​​需要寫Stroustrup。

在粗略(或確切)的術語中,什麼是#nomacros,它是否可以在任何地方作爲擴展使用?在最近的一個項目中,它將成爲一個有用的診斷工具,該工具涉及將1995年複製的C++的數千個文件移植到2005年的編譯器中,而不是通過預處理器運行代碼並檢查.i文件以獲得驚喜包。

回答

1

這只是一個積極考慮包含到C++中的提議,但在當前編譯器中仍然不可用。如果您進一步閱讀該頁面,則說:

ES042。 #沒有垃圾郵件。

提供預處理器機制,用於限制進入和退出範圍的宏。例如:

#nomacros 
#in A B 
… 
#out A X 
#endnomacros 

沒有宏在#nomacros和#endnomacros之間展開,除非#in明確啓用。 #nomacros和#endnomacros之間定義的宏將在#endnomacros之後定義,除非#out明確啓用。

Bjarne Stroustrup的建議。在EWG討論之後,決定尋找一種解決方案,允許「#in」允許的宏使用的宏僅用於擴展這些宏。

#nomacros應該嵌套。