Как создать безопасный для типов int - enum в C ++? - PullRequest
2 голосов
/ 04 февраля 2009

Мне нужно создать много классов, которые находятся где-то между integer и enum. То есть имеют целочисленную арифметику, но также неявно преобразуются в целое число.

Ответы [ 2 ]

4 голосов
/ 04 февраля 2009

Посмотрите на ответ на этот вопрос - BOOST_STRONG_TYPEDEF сделал именно то, что я хотел.

// macro used to implement a strong typedef.  strong typedef
// guarentees that two types are distinguised even though the
// share the same underlying implementation.  typedef does not create
// a new type.  BOOST_STRONG_TYPEDEF(T, D) creates a new type named D
// that operates as a type T.
1 голос
/ 04 февраля 2009

Одной из возможностей является создание класса с «перечислениями», определенными как инвариантные члены класса, с помощью метода :: GetValue () и математических операций, которые вам нужно использовать перегруженными, чтобы использовать GetValue () для выполнения рассматриваемой математики. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...