mn_addressof.hpp
Go to the documentation of this file.
1 /*
2 *This file is part of the Mini Thread Library (https://github.com/RoseLeBlood/MiniThread ).
3 *Copyright (c) 2018 Amber-Sophia Schroeck
4 *
5 *The Mini Thread Library is free software; you can redistribute it and/or modify
6 *it under the terms of the GNU Lesser General Public License as published by
7 *the Free Software Foundation, version 3, or (at your option) any later version.
8 
9 *The Mini Thread Library is distributed in the hope that it will be useful, but
10 *WITHOUT ANY WARRANTY; without even the implied warranty of
11 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 *General Public License for more details.
13 *
14 *You should have received a copy of the GNU Lesser General Public
15 *License along with the Mini Thread Library; if not, see
16 *<https://www.gnu.org/licenses/>.
17 */
18 #ifndef __MINLIB_MN_ADDRESSOF_H__
19 #define __MINLIB_MN_ADDRESSOF_H__
20 
21 
22 #include "../mn_config.hpp"
23 #include "../mn_def.hpp"
24 
25 namespace mn {
26  template<class T>
27  constexpr inline T* addressof(T& o) noexcept {
28  return __builtin_addressof(o);
29  }
30  template<class T> const T* addressof(const T&&) = delete;
31 }
32 
33 
34 #endif // __MINLIB_MN_ADDRESSOF_H__
struct mn::memory::detail::ptr_difference T
Definition: mn_atomic_singleton.hpp:38
Definition: mn_allocator_typetraits.hpp:25
constexpr T * addressof(T &o) noexcept
Definition: mn_addressof.hpp:27