從摘錄「例外C++」:前置聲明庫名
「在過去,你可以只更換‘的#include’與‘類ostream的,’在這種情況下,因爲ostream的使用是一個class ostream;「是非法的,原因有兩個:
ostream現在在命名空間std中,程序員不允許聲明任何生活在namespace std。
ostream現在是一個模板的typedef;具體來說,它是typedef'd as basic_ostream。不僅basic_ost令人討厭的模板在任何情況下都會亂七八糟地向前聲明,但是你根本無法可靠地進行前向聲明,因爲庫實現允許做一些事情,比如添加自己額外的模板參數(超出標準所要求的參數),當然,你的代碼不會知道 - 規則的主要原因之一是程序員不允許在命名空間標準中爲事物編寫自己的聲明。「
我的問題:
我不明白,標誌着加粗的部分。
感謝,
你的問題標題和你的問題文本問兩個不同的東西。 – 2010-07-11 08:20:30
一個可怕的問題:P – 2010-07-11 08:35:44
@尼爾:好吧,試圖使它們一致。 – xyz 2010-07-11 08:43:04