#include "adapter.hpp" //#include //#include //#include // // //using util::adapter::scalar; // // //void //foo (void) { // std::vector> vals; // // using iterator_t = util::adapter::scalar<0, decltype(vals.begin ())>; // // static_assert ( // std::is_same< // typename std::iterator_traits< // decltype(vals.begin ()) // >::value_type, // std::tuple // >::value // ); // // static_assert ( // std::is_same< // typename std::tuple_element<0, std::tuple>::type, // int // >::value // ); // // iterator_t end (vals.end ()); // // //static_assert ( // // std::is_same< // // typename iterator_t::reference, // // //decltype(*std::declval >> ()), // // //typename scalar<0,decltype(vals.begin ())>::value_type, // // int& // // >::value // //); // // for (auto p = iterator_t (vals.begin ()), last = iterator_t (vals.end ()); p != last; ++p) // int b = *p; //}