LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Близким аналогом void, кстати, выступает тип, порождаемый через namespace.

namespace-тип можно присваивать другим именам и сравнивать с другими типами. Инстанцировать его нельзя, размера он не имеет.

namespace void2 of end;

type v1 = void;
type v2 = void2;

static_assert(v1 == void);
static_assert(v2 == void2);
static_assert(v1 != v2);
static_assert(void != void2);


void2 f(); /* Ошибка */
void f(void2); /* Ошибка */

Исправление wandrien, :

Аналогом void, кстати, выступает тип, порождаемый через namespace.

namespace-тип можно присваивать другим именам и сравнивать с другими типами. Инстанцировать его нельзя, размера он не имеет.

namespace void2 of end;

type v1 = void;
type v2 = void2;

static_assert(v1 == void);
static_assert(v2 == void2);
static_assert(v1 != v2);
static_assert(void != void2);


void2 f(); /* Ошибка */
void f(void2); /* Ошибка */

Исходная версия wandrien, :

Аналогом void, кстати, выступает тип, порождаемый через namespace.

namespace-тип можно можно присваивать другим именам и сравнивать с другими типами. Инстанцировать его нельзя, размера он не имеет.

namespace void2 of end;

type v1 = void;
type v2 = void2;

static_assert(v1 == void);
static_assert(v2 == void2);
static_assert(v1 != v2);
static_assert(void != void2);


void2 f(); /* Ошибка */
void f(void2); /* Ошибка */