Expression Templates Library (ETL)
inline.hpp
Go to the documentation of this file.
1 //=======================================================================
2 // Copyright (c) 2014-2023 Baptiste Wicht
3 // Distributed under the terms of the MIT License.
4 // (See accompanying file LICENSE or copy at
5 // http://opensource.org/licenses/MIT)
6 //=======================================================================
7 
13 #pragma once
14 
15 #ifdef __clang__
16 #define ETL_INLINE_ATTR_VEC __attribute__((__always_inline__, __nodebug__))
17 
18 #define ETL_INLINE(RRRR) inline RRRR __attribute__((__always_inline__, __nodebug__))
19 #define ETL_STRONG_INLINE(RRRR) inline RRRR __attribute__((__always_inline__))
20 #define ETL_STATIC_INLINE(RRRR) static ETL_INLINE(RRRR)
21 #define ETL_TMP_INLINE(RRRR) static inline RRRR __attribute__((__always_inline__, __nodebug__))
22 #define ETL_OUT_INLINE(RRRR) inline RRRR __attribute__((__always_inline__, __nodebug__))
23 #else
24 #define ETL_INLINE_ATTR_VEC __attribute__((__always_inline__, __artificial__))
25 
26 #define ETL_INLINE(RRRR) inline RRRR __attribute__((__always_inline__, __gnu_inline__, __artificial__))
27 #define ETL_STRONG_INLINE(RRRR) inline RRRR __attribute__((__always_inline__, __gnu_inline__))
28 #define ETL_STATIC_INLINE(RRRR) static ETL_INLINE(RRRR)
29 #define ETL_TMP_INLINE(RRRR) static inline RRRR __attribute__((__always_inline__, __artificial__))
30 #define ETL_OUT_INLINE(RRRR) inline RRRR __attribute__((__always_inline__, __artificial__))
31 #endif