コード例 #1
0
ファイル: visit.hpp プロジェクト: viboes/std-make
      static constexpr decltype(auto) visit(V&& v, ST&& st) noexcept
      {
        if (value_or_error::has_value(forward<ST>(st)))
          return JASEL_INVOKE(forward<V>(v),value_or_error::deref(forward<ST>(st)));
        return JASEL_INVOKE(forward<V>(v), value_or_error::error(forward<ST>(st)) );


      }
コード例 #2
0
ファイル: resolve.hpp プロジェクト: viboes/std-make
 BOOST_CXX14_CONSTEXPR
 value_type_t<remove_cvref_t<N>>
 resolve(N&& n, F&& f)
 {
   if (value_or_none::has_value(forward<N>(n)))
   {
     return value_or_none::deref(forward<N>(n));
   }
   return JASEL_INVOKE(std::forward<F>(f),  value_or_none::none<remove_cvref_t<N>>() );
 }
コード例 #3
0
ファイル: apply_or.hpp プロジェクト: jfbastien/std-make
 BOOST_CXX14_CONSTEXPR
 value_type_t<meta::uncvref_t<N>>
 apply_or(N&& n, F&& f, T&& v)
 {
   if (nullable::has_value(forward<N>(n)))
   {
     return JASEL_INVOKE(std::forward<F>(f), nullable::deref(forward<N>(n)));
   }
   return forward<T>(v);
 }