Подтвердить что ты не робот

Примитивные типы как объекты в С++

Я столкнулся с следующим фрагментом кода, и я не мог понять, что это значит:

typedef int INT; 
5 .INT::~INT();

Примечание: Между числовым числом 5 и десятичным значением существует пробел.

Вопросы: 1. Может ли кто-нибудь объяснить, что именно означают эти две строки? 2. Почему он не работает без typedef? Любая причина этого? 5 .int::~int() выдает ошибку.

4b9b3361

Ответ 1

.INT::~INT() - это вызов псевдо-деструктора, полезный для шаблонного кода.

Обратите внимание, что он не может использоваться без типа typedef.


Standardese:

С++ 03 §5.2.4 "Вызов псевдодеструктора":
  • Использование псевдо-деструктора-имени после оператора dot . или стрелки -> представляет деструктор для тип non-class, названный именем типа. Результат должен использоваться только как операнд для оператора функции (), а результат такого вызова имеет тип void. Единственный эффект - это оценка постфиксного выражения перед точкой или стрелкой.