17 #ifndef __TBB_range_iterator_H
18 #define __TBB_range_iterator_H
20 #include "../tbb_stddef.h"
22 #if __TBB_CPP11_STD_BEGIN_END_PRESENT && __TBB_CPP11_AUTO_PRESENT && __TBB_CPP11_DECLTYPE_PRESENT
30 #if __TBB_CPP11_STD_BEGIN_END_PRESENT && __TBB_CPP11_AUTO_PRESENT && __TBB_CPP11_DECLTYPE_PRESENT
33 template<
typename Container>
36 template<
typename Container>
39 template<
typename Container>
40 auto last(Container& c)-> decltype(
begin(c)) {
return end(c);}
42 template<
typename Container>
43 auto last(
const Container& c)-> decltype(
begin(c)) {
return end(c);}
45 template<
typename Container>
46 typename Container::iterator
first(Container& c) {
return c.begin();}
48 template<
typename Container>
49 typename Container::const_iterator
first(
const Container& c) {
return c.begin();}
51 template<
typename Container>
52 typename Container::iterator
last(Container& c) {
return c.end();}
54 template<
typename Container>
55 typename Container::const_iterator
last(
const Container& c) {
return c.end();}
58 template<
typename T,
size_t size>
61 template<
typename T,
size_t size>
66 #endif // __TBB_range_iterator_H