Re: Требуются пояснения
От: B0FEE664  
Дата: 09.12.24 14:39
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Всем привет, коллега попросил спросить:

V>https://godbolt.org/z/xhP1b4cn6

перечисление — это не набор констант, это не набор флагов, перечисление — это набор идентификаторов. Если это понять, то программировать станет намного легче:
namespace EEEconstants
{
  inline constexpr int zero = 0;
  inline constexpr int one  = 1;
  inline constexpr int two  = 2;
};

struct CEEEconstant
{
  inline constexpr static int zero = 0;
  inline constexpr static int one  = 1;
  inline constexpr static int two  = 2; 

  inline constexpr static std::array all = {zero, one, two};
};

static_assert(EEEconstants::zero == CEEEconstant::zero);
static_assert(EEEconstants::one < CEEEconstant::two);

struct MoveFileFlags_
{
  inline constexpr static unsigned int copyAllowed     = 1;
  inline constexpr static unsigned int replaceExisting = 2;
  inline constexpr static unsigned int overwrite       = 2; //!< Same as replaceExisting
  inline constexpr static unsigned int writeThrough    = 4;

  inline constexpr static unsigned int validMask       = copyAllowed | replaceExisting | overwrite | writeThrough;
};
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.