Pressio / pressio

core C++ library
Other
45 stars 7 forks source link

ops: revise `fill` #436

Closed fnrizzi closed 1 year ago

fnrizzi commented 2 years ago

this is just for fill, we need to do these things;

namespace pressio{ namespace ops{

template <typename T, class ScalarType>
#ifdef PRESSIO_ENABLE_CXX20
 requires (::pressio::is_native_container_eigen<T>::value
    || ::pressio::is_expression_acting_on_eigen<T>::value)
        && std::convertible_to<ScalarType, typename ::pressio::Traits<T>::scalar_type>::value
#else
::pressio::mpl::enable_if_t<
    (::pressio::is_native_container_eigen<T>::value
  || ::pressio::is_expression_acting_on_eigen<T>::value)
  && std::is_convertible<ScalarType, typename ::pressio::Traits<T>::scalar_type>::value
>
#endif 
fill(T & o, const ScalarType & value)
{
  const typename ::pressio::Traits<T>::scalar_type newVal{value};
  impl::get_native(o).setConstant(newValue);
}

}}//end namespace pressio::ops