/*
 * Copyright 2015 Telenav Inc. All rights reserved.
 */
#ifndef TN_FOUNDATION_FUNCTIONAL_HPP
#define TN_FOUNDATION_FUNCTIONAL_HPP

#include "foundation/cxx11compat.hpp"

#if _TN_FOUNDATION_USE_STD
#  include <functional>
#else
#  include "boost/bind.hpp"
#  include "boost/bind/placeholders.hpp"
#  include "boost/function.hpp"
#  include "boost/functional/hash.hpp"
#endif 

namespace tn {
    using _TN_FOUNDATION_STD_NS::bind;
    using _TN_FOUNDATION_STD_NS::function;
    using _TN_FOUNDATION_STD_NS::hash;


#if _TN_FOUNDATION_USE_STD
    namespace placeholders = ::std::placeholders;
#else
    namespace placeholders {
    	using ::_1;
    	using ::_2;
    	using ::_3;
    	using ::_4;
    	using ::_5;
    	using ::_6;
    	using ::_7;
    	using ::_8;
       	using ::_9;
    }
#endif
}

#endif /* TN_FOUNDATION_FUNCTIONAL_HPP */
