// { dg-additional-options "-fmodules-ts" } export module foo; // { dg-module-cmi foo } typedef unsigned long size_t; template class __make_unsigned_selector; class __make_unsigned_selector_base { protected: template struct _List { }; template struct _List<_Tp, _Up...> : _List<_Up...> { static constexpr size_t __size = sizeof(_Tp); }; template struct __select; }; template class __make_unsigned_selector<_Tp, false, true> : __make_unsigned_selector_base { using _UInts = _List; using __unsigned_type = typename __select::__type; };