/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/library/utility/iterator.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/library/utility/iterator.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/library/utility/iterator.hpp Source File
iterator.hpp
Go to the documentation of this file.
1 // SPDX-License-Identifier: MIT
2 // Copyright (c) 2018-2023, Advanced Micro Devices, Inc. All rights reserved.
3 
4 #pragma once
5 
6 #include <iterator>
7 #include <utility>
8 
9 #include "ck/utility/type.hpp"
10 
11 namespace ck {
12 
13 template <typename T>
14 using iter_value_t = typename std::iterator_traits<remove_cvref_t<T>>::value_type;
15 
16 template <typename T>
17 using iter_reference_t = decltype(*std::declval<T&>());
18 
19 template <typename T>
20 using iter_difference_t = typename std::iterator_traits<remove_cvref_t<T>>::difference_type;
21 
22 } // namespace ck
Definition: ck.hpp:267
decltype(*std::declval< T & >()) iter_reference_t
Definition: iterator.hpp:17
typename std::iterator_traits< remove_cvref_t< T > >::difference_type iter_difference_t
Definition: iterator.hpp:20
typename std::iterator_traits< remove_cvref_t< T > >::value_type iter_value_t
Definition: iterator.hpp:14