У мові є лише дві категорії типів, які не можуть мати const-кваліфікації: типи посилань та типи функцій. Отже, якщо це const T
не кваліфікований тип const, це означає, що T
це або тип функції, або тип посилання. Якщо ви можете виключати типи посилань, вам залишаються лише типи функцій.
Зауважте, що тип функції, що містить cv-класифікатор, наприклад int(int) const
, не є типом , призначеним для const. Це приклад "непристойного типу функцій", єдине реальне використання якого - складати або розкладати типи функцій вказівника до члена. Тип int(int) const
неможливо отримати, додавши const-кваліфікацію поверх int(int)
. Скоріше, це const
стосується параметра параметр об'єкта.
!is_const
частину.