2016-02-26 13:36:01 +11:00
|
|
|
/*
|
2018-08-04 15:14:06 +10:00
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
2016-02-26 13:36:01 +11:00
|
|
|
*
|
|
|
|
* Copyright:
|
|
|
|
* 2015, Danny Robson <danny@nerdcruft.net>
|
|
|
|
*/
|
2015-10-19 12:06:23 +11:00
|
|
|
|
|
|
|
#include "adapter.hpp"
|
|
|
|
|
|
|
|
//#include <vector>
|
|
|
|
//#include <tuple>
|
|
|
|
//#include <iostream>
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//using util::adapter::scalar;
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//void
|
|
|
|
//foo (void) {
|
|
|
|
// std::vector<std::tuple<int,int,int>> 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<int,int,int>
|
|
|
|
// >::value
|
|
|
|
// );
|
|
|
|
//
|
|
|
|
// static_assert (
|
|
|
|
// std::is_same<
|
|
|
|
// typename std::tuple_element<0, std::tuple<int,int,int>>::type,
|
|
|
|
// int
|
|
|
|
// >::value
|
|
|
|
// );
|
|
|
|
//
|
|
|
|
// iterator_t end (vals.end ());
|
|
|
|
//
|
|
|
|
// //static_assert (
|
|
|
|
// // std::is_same<
|
|
|
|
// // typename iterator_t::reference,
|
|
|
|
// // //decltype(*std::declval <scalar<0,std::tuple<int,int,int>>> ()),
|
|
|
|
// // //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;
|
|
|
|
//}
|