template<typename _Tp>
struct _CwFixedValue
{
- using _S_type = _Tp;
+ using __type = _Tp;
constexpr
- _CwFixedValue(_S_type __v) noexcept
+ _CwFixedValue(__type __v) noexcept
: _M_data(__v) { }
- _S_type _M_data;
+ __type _M_data;
};
template<typename _Tp, size_t _Extent>
struct _CwFixedValue<_Tp[_Extent]>
{
- using _S_type = _Tp[_Extent];
+ using __type = _Tp[_Extent];
constexpr
_CwFixedValue(_Tp (&__arr)[_Extent]) noexcept
template<typename _Tp, size_t _Extent>
_CwFixedValue(_Tp (&)[_Extent]) -> _CwFixedValue<_Tp[_Extent]>;
- template<_CwFixedValue _Tp,
- typename = typename decltype(_CwFixedValue(_Tp))::_S_type>
+ template<_CwFixedValue _Xv,
+ typename = typename decltype(_CwFixedValue(_Xv))::__type>
struct constant_wrapper;
template<typename _Tp>
{
static constexpr const auto& value = _Xv._M_data;
using type = constant_wrapper;
- using value_type = typename decltype(_Xv)::_S_type;
+ using value_type = typename decltype(_Xv)::__type;
template<_ConstExprParam _Right>
constexpr auto