diff options
| -rw-r--r-- | indra/llcommon/llinitparam.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h index b220afadfc..0629f3ebae 100644 --- a/indra/llcommon/llinitparam.h +++ b/indra/llcommon/llinitparam.h @@ -45,7 +45,6 @@ namespace LLTypeTags template <typename INNER_TYPE, int _SORT_ORDER> struct TypeTagBase { - typedef void is_tag_t; typedef INNER_TYPE inner_t; static const int SORT_ORDER=_SORT_ORDER; }; @@ -68,18 +67,12 @@ namespace LLTypeTags typedef typename REST::template Cons<Swap<ITEM, typename REST::inner_t>::value_t>::value_t value_t; }; - template<typename T, typename SORTABLE = void> + template<typename T> struct IsSortable { static const bool value = false; }; - template<typename T> - struct IsSortable<T, typename T::is_tag_t> - { - static const bool value = true; - }; - template<typename ITEM, typename REST, bool IS_REST_SORTABLE = IsSortable<REST>::value> struct InsertInto { @@ -2830,5 +2823,26 @@ namespace LLInitParam }; } +namespace LLTypeTags +{ + // After BaseBlock so Sequential, Atomic, and Lazy are in scope. + template<typename T> + struct IsSortable<LLInitParam::BaseBlock::Sequential<T> > + { + static const bool value = true; + }; + + template<typename T> + struct IsSortable<LLInitParam::BaseBlock::Atomic<T> > + { + static const bool value = true; + }; + + template<typename T, typename BLOCK_T> + struct IsSortable<LLInitParam::BaseBlock::Lazy<T, BLOCK_T> > + { + static const bool value = true; + }; +} #endif // LL_LLPARAM_H |
