ALPSCore reference
remove_cvr.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1998-2018 ALPS Collaboration. See COPYRIGHT.TXT
3  * All rights reserved. Use is subject to license terms. See LICENSE.TXT
4  * For use in publications, see ACKNOWLEDGE.TXT
5  */
6 
7 #ifndef ALPS_DETAIL_REMOVE_CVR_HPP
8 #define ALPS_DETAIL_REMOVE_CVR_HPP
9 
10 namespace alps {
11  namespace detail {
12 
13  template<typename T> struct remove_cvr {
14  typedef T type;
15  };
16 
17  template<typename T> struct remove_cvr<T const> {
18  typedef typename remove_cvr<T>::type type;
19  };
20 
21  template<typename T> struct remove_cvr<T volatile> {
22  typedef typename remove_cvr<T>::type type;
23  };
24 
25  template<typename T> struct remove_cvr<T &> {
26  typedef typename remove_cvr<T>::type type;
27  };
28 
29  }
30 }
31 #endif