📄 must_init.hpp
字号:
template< ss_typename_param_k T
>
inline ss_bool_t operator !=(must_init<T> const& lhs, must_init<T> const& rhs)
{
return ! operator ==(lhs, rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator !=(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator !=(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return ! operator ==(lhs, rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator !=(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator !=(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return ! operator ==(lhs, rhs);
}
// operator <
template< ss_typename_param_k T
>
inline ss_bool_t operator <(must_init<T> const& lhs, must_init<T> const& rhs)
{
return lhs.base_type_value() < rhs.base_type_value();
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator <(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator <(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs.base_type_value() < rhs;
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator <(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator <(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs < rhs.base_type_value();
}
// operator <=
template< ss_typename_param_k T
>
inline ss_bool_t operator <=(must_init<T> const& lhs, must_init<T> const& rhs)
{
return lhs.base_type_value() <= rhs.base_type_value();
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator <=(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator <=(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs.base_type_value() <= rhs;
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator <=(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator <=(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs <= rhs.base_type_value();
}
// operator >
template< ss_typename_param_k T
>
inline ss_bool_t operator >(must_init<T> const& lhs, must_init<T> const& rhs)
{
return lhs.base_type_value() > rhs.base_type_value();
}
#ifdef __SYNSOFT_DBS_COMPILER_SUPPORTS_PRAGMA_MESSAGE
# pragma message(_sscomp_fileline_message("This had to be changed to T + T2, so as to allow comparison between different integral types"))
#endif /* __SYNSOFT_DBS_COMPILER_SUPPORTS_PRAGMA_MESSAGE */
template< ss_typename_param_k T
, ss_typename_param_k T2
>
inline ss_bool_t operator >(must_init<T> const& lhs, T2 const& rhs)
{
return lhs.base_type_value() > rhs;
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator >(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator >(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs > rhs.base_type_value();
}
// operator >=
template< ss_typename_param_k T
>
inline ss_bool_t operator >=(must_init<T> const& lhs, must_init<T> const& rhs)
{
return lhs.base_type_value() >= rhs.base_type_value();
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator >=(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator >=(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs.base_type_value() >= rhs;
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline ss_bool_t operator >=(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline ss_bool_t operator >=(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return lhs >= rhs.base_type_value();
}
// operator +
template< ss_typename_param_k T
>
inline must_init<T> operator +(must_init<T> const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs.base_type_value() + rhs.base_type_value());
}
#if 0
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator +(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator +(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs.base_type_value() + rhs);
}
#else /* ? 0 */
template< ss_typename_param_k T
, ss_typename_param_k T2
>
inline must_init<T> operator +(must_init<T> const& lhs, T2 const& rhs)
{
return must_init<T>(lhs.base_type_value() + rhs);
}
#endif /* 0 */
#if 0
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator +(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator +(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs + rhs.base_type_value());
}
#else /* ? 0 */
template< ss_typename_param_k T
, ss_typename_param_k T2
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator +(T2 const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator +(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs + rhs.base_type_value());
}
#endif /* 0 */
// operator -
template< ss_typename_param_k T
>
inline must_init<T> operator -(must_init<T> const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs.base_type_value() - rhs.base_type_value());
}
#if 0
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator -(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator -(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs.base_type_value() - rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator -(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator -(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs - rhs.base_type_value());
}
#else /* ? 0 */
template< ss_typename_param_k T
, ss_typename_param_k T2
>
inline must_init<T> operator -(must_init<T> const& lhs, T2 const& rhs)
{
return must_init<T>(lhs.base_type_value() - rhs);
}
template< ss_typename_param_k T
, ss_typename_param_k T2
>
inline must_init<T> operator -(T2 const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs - rhs.base_type_value());
}
#endif /* 0 */
// operator *
template< ss_typename_param_k T
>
inline must_init<T> operator *(must_init<T> const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs.base_type_value() * rhs.base_type_value());
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator *(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator *(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs.base_type_value() * rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator *(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator *(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs * rhs.base_type_value());
}
// operator /
template< ss_typename_param_k T
>
inline must_init<T> operator /(must_init<T> const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs.base_type_value() / rhs.base_type_value());
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator /(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator /(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs.base_type_value() / rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator /(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator /(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs / rhs.base_type_value());
}
// operator %
template< ss_typename_param_k T
>
inline must_init<T> operator %(must_init<T> const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs.base_type_value() % rhs.base_type_value());
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator %(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator %(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs.base_type_value() % rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator %(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator %(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs % rhs.base_type_value());
}
// operator ^
template< ss_typename_param_k T
>
inline must_init<T> operator ^(must_init<T> const& lhs, must_init<T> const& rhs)
{
return must_init<T>(lhs.base_type_value() ^ rhs.base_type_value());
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator ^(must_init<T> const& lhs, ss_typename_type_k must_init<T>::value_type const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator ^(must_init<T> const& lhs, T const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs.base_type_value() ^ rhs);
}
template< ss_typename_param_k T
>
#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
inline must_init<T> operator ^(ss_typename_type_k must_init<T>::value_type const& lhs, must_init<T> const& rhs)
#else /* ? STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
inline must_init<T> operator ^(T const& lhs, must_init<T> const& rhs)
#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
{
return must_init<T>(lhs ^ rhs.base_type_value());
}
// operator ~
template< ss_typename_param_k T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -