xformed.hpp File Reference

Go to the source code of this file.

Namespaces

 atria
 C++ amazing templates and reusable implementations awesomeness.
 
 atria::funken
 Provides a experimental library for writing epocal and functional data-models.
 

Functions

template<typename Xform , typename... InTs>
auto xformed (Xform &&xform, InTs &&...ins) -> estd::enable_if_t< meta::all(In_value< InTs >()...), detail::xformed_input< typename decltype( detail::make_xform_down_signal( xform, detail::access::signal(ins)...) )::element_type > >
 Returns a new in formed by applying a transducer xform on the successive values of the in. More...
 
template<typename Xform , typename Xform2 , typename... InoutTs>
auto xformed (Xform &&xform, Xform2 &&xform2, InoutTs &&...ins) -> estd::enable_if_t< (!In_value< Xform2 >()&&meta::all(Inout_value< InoutTs >()...)), detail::xformed_inoutput< typename decltype( detail::make_xform_up_down_signal( xform, xform2, detail::access::signal(ins)...) )::element_type > >
 
template<typename KeyT >
auto xat (KeyT &&key) -> xform::transducer_impl< detail::at_rf_gen, estd::decay_t< KeyT > >
 Transducer that projects the key key from containers with a standard-style at() method. More...
 
template<typename KeyT >
auto uat (KeyT &&key) -> detail::at_updater< estd::decay_t< KeyT > >
 Update function that updates the key in a container with a standard-style at() method. More...
 
template<typename KeyT , typename... Ins>
auto atted (KeyT &&k, Ins &&...ins) -> estd::enable_if_t< meta::all(In_value< Ins >()&&!Out_value< Ins >()...), decltype(xformed(xat(k), ins...)) >
 Returns xformed version of the ins using xat. More...
 
template<typename AttrPtrT >
auto get_attr (AttrPtrT p) -> detail::get_attr_fn< AttrPtrT >
 Returns a unary function that dereferences the given pointer to member to the applied objects. More...
 
template<typename AttrPtrT >
auto set_attr (AttrPtrT p) -> detail::set_attr_fn< AttrPtrT >
 Returns a update function that uses the given pointer to member. More...
 
template<typename AttrPtrT , typename... Ins>
auto attred (AttrPtrT attr, Ins &&...ins) -> estd::enable_if_t< meta::all(In_value< Ins >()&&!Out_value< Ins >()...), decltype(xformed(xform::map(get_attr(attr)), ins...)) >
 Given a pointer to member, returns a xformed version of the ins accessed through the member. More...
 
Fork me on GitHub