//////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// See http://www.boost.org/libs/interprocess for documentation.
//
//////////////////////////////////////////////////////////////////////////////

#ifndef NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
#define NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP

#include <ndnboost/intrusive/detail/config_begin.hpp>

#if    !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
   #define NDNBOOST_INTRUSIVE_PERFECT_FORWARDING
#endif

#include <ndnboost/intrusive/detail/config_end.hpp>

#endif   //#ifndef NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
