角括號位置
位於樣板名稱後方的第一個左括號會解譯為樣板引數清單的一部分,而不是解譯為大於運算子。 在開頭角括弧後方的第一個 > 會解譯為樣板引數清單的結尾,若是以括弧括住,則會解譯為巢狀樣板的一部分,或者是樣板樣式轉型運算式的一部分 (例如 static_cast<int>)。
角括弧 (<>) 的位置若有錯誤,則會產生許多樣板語法錯誤。 請務必使用適當的間距和括號來區分角括弧和運算子,例如 >、>> 和 ->。 例如:
TempClass< float, a > b ? a : b > test1;
應該重新改寫為:
TempClass< float, (a > b ? a : b) > test1;
同樣地,使用以角括弧做為樣板引數的巨集時,請特別注意這一點。