GEOSX
traits.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2019 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2019 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2019 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All right reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
18 #ifndef GEOS_LINEARALGEBRA_UTILITIES_TRAITS_HPP_
19 #define GEOS_LINEARALGEBRA_UTILITIES_TRAITS_HPP_
20 
21 #include "codingUtilities/SFINAE_Macros.hpp"
22 
23 namespace geos
24 {
25 
26 namespace traits
27 {
28 
35 template< typename VECTOR >
37 {
39  using Vector = VECTOR;
40 
42  HAS_MEMBER_FUNCTION_NO_RTYPE( applyTranspose, std::declval< Vector >(), std::declval< Vector >() );
43 };
44 
45 }
46 
47 } // namespace geos
48 
49 #endif //GEOS_LINEARALGEBRA_UTILITIES_TRAITS_HPP_
Traits helper struct templated on the vector type.
Definition: traits.hpp:37
HAS_MEMBER_FUNCTION_NO_RTYPE(applyTranspose, std::declval< Vector >(), std::declval< Vector >())
Trait for detecting applyTranspose() method on a class.
VECTOR Vector
Alias for vector type.
Definition: traits.hpp:39