ndnboost: Include boost::iostreams for internal use.
diff --git a/include/ndnboost/detail/bitmask.hpp b/include/ndnboost/detail/bitmask.hpp
new file mode 100644
index 0000000..e5dce4a
--- /dev/null
+++ b/include/ndnboost/detail/bitmask.hpp
@@ -0,0 +1,47 @@
+// ndnboost/detail/bitmask.hpp ------------------------------------------------//
+
+// Copyright Beman Dawes 2006
+
+// Distributed under the Boost Software License, Version 1.0
+// http://www.boost.org/LICENSE_1_0.txt
+
+// Usage: enum foo { a=1, b=2, c=4 };
+// NDNBOOST_BITMASK( foo );
+//
+// void f( foo arg );
+// ...
+// f( a | c );
+
+#ifndef NDNBOOST_BITMASK_HPP
+#define NDNBOOST_BITMASK_HPP
+
+#include <ndnboost/cstdint.hpp>
+
+#define NDNBOOST_BITMASK(Bitmask) \
+ \
+ inline Bitmask operator| (Bitmask x , Bitmask y ) \
+ { return static_cast<Bitmask>( static_cast<ndnboost::int_least32_t>(x) \
+ | static_cast<ndnboost::int_least32_t>(y)); } \
+ \
+ inline Bitmask operator& (Bitmask x , Bitmask y ) \
+ { return static_cast<Bitmask>( static_cast<ndnboost::int_least32_t>(x) \
+ & static_cast<ndnboost::int_least32_t>(y)); } \
+ \
+ inline Bitmask operator^ (Bitmask x , Bitmask y ) \
+ { return static_cast<Bitmask>( static_cast<ndnboost::int_least32_t>(x) \
+ ^ static_cast<ndnboost::int_least32_t>(y)); } \
+ \
+ inline Bitmask operator~ (Bitmask x ) \
+ { return static_cast<Bitmask>(~static_cast<ndnboost::int_least32_t>(x)); } \
+ \
+ inline Bitmask & operator&=(Bitmask & x , Bitmask y) \
+ { x = x & y ; return x ; } \
+ \
+ inline Bitmask & operator|=(Bitmask & x , Bitmask y) \
+ { x = x | y ; return x ; } \
+ \
+ inline Bitmask & operator^=(Bitmask & x , Bitmask y) \
+ { x = x ^ y ; return x ; }
+
+#endif // NDNBOOST_BITMASK_HPP
+