Сообщение Re: Выразить в реализации ограничения на разрядность целых от 03.10.2018 13:57
Изменено 03.10.2018 13:59 SomeOne_TT
Re: Выразить в реализации ограничения на разрядность целых
Здравствуйте, _hum_, Вы писали:
__>Разрабатываю класс, который предполагает в качестве исходных данных для создания своего объекта и работы с ним сторонний массив целых чисел, для примера, типа long.
__>Как бы наиболее простым и явным образом намекнуть пользователю класса (не прибегая к справке), что массив не должен содержать целых, выходящих за 32-разряда (это важно для платформ, где long 64-разрядный)?
__>[Ограничения связаны с особенностями бинарной сериализации объектов данного класса]
Например,
__>Разрабатываю класс, который предполагает в качестве исходных данных для создания своего объекта и работы с ним сторонний массив целых чисел, для примера, типа long.
__>Как бы наиболее простым и явным образом намекнуть пользователю класса (не прибегая к справке), что массив не должен содержать целых, выходящих за 32-разряда (это важно для платформ, где long 64-разрядный)?
__>[Ограничения связаны с особенностями бинарной сериализации объектов данного класса]
Например,
static_assert((sizeof(T)<=sizeof(uint32_t))&& std::is_integral<T>(), "Usage of types longer than uint8_t not allowed")
Re: Выразить в реализации ограничения на разрядность целых
Здравствуйте, _hum_, Вы писали:
__>Разрабатываю класс, который предполагает в качестве исходных данных для создания своего объекта и работы с ним сторонний массив целых чисел, для примера, типа long.
__>Как бы наиболее простым и явным образом намекнуть пользователю класса (не прибегая к справке), что массив не должен содержать целых, выходящих за 32-разряда (это важно для платформ, где long 64-разрядный)?
__>[Ограничения связаны с особенностями бинарной сериализации объектов данного класса]
Например,
__>Разрабатываю класс, который предполагает в качестве исходных данных для создания своего объекта и работы с ним сторонний массив целых чисел, для примера, типа long.
__>Как бы наиболее простым и явным образом намекнуть пользователю класса (не прибегая к справке), что массив не должен содержать целых, выходящих за 32-разряда (это важно для платформ, где long 64-разрядный)?
__>[Ограничения связаны с особенностями бинарной сериализации объектов данного класса]
Например,
static_assert((sizeof(T)<=sizeof(uint32_t)), "Usage of types longer than uint8_t not allowed")
и
static_assert(std::is_integral<T>(),"Non-integral types arent allowed")