EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
get_position.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file get_position.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2016-2018 CERN for the benefit of the Acts project
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 namespace Acts {
12 namespace detail {
26 template <typename T, T target, T... values>
27 struct get_position;
28 
30 template <typename T, T target, T... others>
31 struct get_position<T, target, target, others...> {
32  enum { value = 0 };
33 };
34 
35 template <typename T, T target, T next, T... others>
36 struct get_position<T, target, next, others...> {
37  enum { value = get_position<T, target, others...>::value + 1 };
38 };
40 } // namespace detail
42 } // namespace Acts