Lines Matching refs:Flag

444  * AData<types...>::Strict<Flag> - strict type support using custom flag.
445 * AData<types...>::Relaxed<Flag, MaxSize, Align>
476 * - a canDeleteAs(Flag, Flag) flag comparison method that checks if a type of a flag can be
479 * \param Flag the underlying unsigned integral to use for the flags.
481 template<typename Flag>
484 static_assert(std::is_unsigned<Flag>::value, "Flag must be unsigned");
485 static_assert(std::is_integral<Flag>::value, "Flag must be an integral type");
487 static constexpr Flag count = num_types + 1;
490 typedef Flag type; ///< flag type
492 static constexpr Flag mask = _Flagged_helper::minMask<Flag>(count); ///< flag mask
508 static constexpr bool canDeleteAs(Flag objectFlag, Flag deleteFlag) {
518 static constexpr Flag flagFor(void*) {
526 static constexpr Flag flagFor(T*) {
538 * Flag is basically the index of the (base) type in Ts multiplied by the max size stored plus
544 template<typename Flag, size_t MaxSize=1024, size_t Align=4>
547 static_assert(std::is_unsigned<Flag>::value, "Flag must be unsigned");
548 static_assert(std::is_integral<Flag>::value, "Flag must be an integral type");
550 static constexpr Flag count = num_types + 1;
551 static_assert(std::numeric_limits<Flag>::max() / count > (MaxSize / Align),
554 static constexpr Flag max_size_stored = MaxSize / Align + 1;
564 static constexpr Flag relaxedFlagFor(W*, T*) {
570 typedef Flag type; ///< flag type
572 static constexpr Flag mask =
573 _Flagged_helper::minMask<Flag>(count * max_size_stored); ///< flag mask
581 static constexpr bool canDeleteAs(Flag objectFlag, Flag deleteFlag) {
593 static constexpr Flag flagFor(void*) {
603 static constexpr Flag flagFor(T*) {
615 static constexpr Flag flagFor(T**p) { return relaxedFlagFor(p, (T*)0); }
617 static constexpr Flag flagFor(std::shared_ptr<T>*p) { return relaxedFlagFor(p, (T*)0); }
619 static constexpr Flag flagFor(std::unique_ptr<T>*p) { return relaxedFlagFor(p, (T*)0); }
621 static constexpr Flag flagFor(std::weak_ptr<T>*p) { return relaxedFlagFor(p, (T*)0); }
623 static constexpr Flag flagFor(sp<T>*p) { return relaxedFlagFor(p, (T*)0); }
625 static constexpr Flag flagFor(wp<T>*p) { return relaxedFlagFor(p, (T*)0); }
816 * \param Flag desired flag type to use. Must be an unsigned and std::integral type.
818 template<typename Flag>
819 using Strict = Custom<flagger<Flag>>;
829 * \param Flag desired flag type to use. Must be an unsigned and std::integral type.
831 template<typename Flag, size_t MaxSize = 1024, size_t Align = 4>
832 using Relaxed = Custom<relaxed_flagger<Flag, MaxSize, Align>>;