diff DEPENDENCIES/generic/include/boost/align/detail/align.hpp @ 102:f46d142149f5

Whoops, finish that update
author Chris Cannam
date Mon, 07 Sep 2015 11:13:41 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DEPENDENCIES/generic/include/boost/align/detail/align.hpp	Mon Sep 07 11:13:41 2015 +0100
@@ -0,0 +1,38 @@
+/*
+ (c) 2014 Glen Joseph Fernandes
+ glenjofe at gmail dot com
+
+ Distributed under the Boost Software
+ License, Version 1.0.
+ http://boost.org/LICENSE_1_0.txt
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGN_HPP
+#define BOOST_ALIGN_DETAIL_ALIGN_HPP
+
+#include <boost/assert.hpp>
+#include <boost/align/detail/address.hpp>
+#include <boost/align/detail/is_alignment.hpp>
+#include <cstddef>
+
+namespace boost {
+    namespace alignment {
+        inline void* align(std::size_t alignment, std::size_t size,
+            void*& ptr, std::size_t& space)
+        {
+            BOOST_ASSERT(detail::is_alignment(alignment));
+            std::size_t n = detail::address_t(ptr) & (alignment - 1);
+            if (n != 0) {
+                n = alignment - n;
+            }
+            void* p = 0;
+            if (n <= space && size <= space - n) {
+                p = static_cast<char*>(ptr) + n;
+                ptr = p;
+                space -= n;
+            }
+            return p;
+        }
+    }
+}
+
+#endif