std 命名空間中的專用範本
使用者可以為 std 命名空間新增明確專業化,但某些範本是禁止的。這些限制確保標準庫的行為保持一致且定義良好。
禁止的特化:
根據C 標準,以下模板不能特化:
-
numeric_limits:禁止使用非算術標準類型(例如,complex
-
shared_ptr:
專業化必須可CopyConstructible、CopyAssignable、LessThanComparable,並可轉換為bool。-
weak_ptr:
專業化必須是CopyConstructible 和CopyAssignable。 -
hash:
專業化必須滿足類模板雜湊的要求。 type_traits> 中的類別模板:- 如果為這些模板添加專門化,則程式行為未定義。 。 :已棄用,不應專門化。 在不符合特定要求的情況下為std 命名空間或任何子命名空間新增宣告或定義。 🎜>標準庫類別的成員類別範本的明確或部分特化。模板特化:
- 它們依賴於使用者定義的類型。禁止。
以上是您可以專門化“std”命名空間中的每個模板嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!