GEOS
traits.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 Total, S.A
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
19 #ifndef GEOS_LINEARALGEBRA_UTILITIES_TRAITS_HPP_
20 #define GEOS_LINEARALGEBRA_UTILITIES_TRAITS_HPP_
21 
22 #include "codingUtilities/SFINAE_Macros.hpp"
23 
24 namespace geos
25 {
26 
27 namespace traits
28 {
29 
36 template< typename VECTOR >
38 {
40  using Vector = VECTOR;
41 
43  HAS_MEMBER_FUNCTION_NO_RTYPE( applyTranspose, std::declval< Vector >(), std::declval< Vector >() );
44 };
45 
46 }
47 
48 } // namespace geos
49 
50 #endif //GEOS_LINEARALGEBRA_UTILITIES_TRAITS_HPP_
Traits helper struct templated on the vector type.
Definition: traits.hpp:38
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:40