assert((std::__or_<std::is_reference<_ValueType>,std::is_copy_constructible<_ValueType>>::value&&"Template argument must be a reference or CopyConstructible type"));
assert(((std::is_reference<_ValueType>::value||std::is_copy_constructible<_ValueType>::value)&&"Template argument must be a reference or CopyConstructible type"));
assert((std::is_constructible<_ValueType,const_Up&>::value&&"Template argument must be constructible from a const value."));