36#ifndef Alembic_Util_Foundation_h
37#define Alembic_Util_Foundation_h
41#ifdef ALEMBIC_LIB_USES_BOOST
42#include <boost/type_traits.hpp>
43#include <boost/ref.hpp>
44#include <boost/format.hpp>
45#include <boost/smart_ptr.hpp>
46#include <boost/static_assert.hpp>
47#include <boost/utility.hpp>
48#include <boost/cstdint.hpp>
49#include <boost/array.hpp>
50#include <boost/operators.hpp>
51#include <boost/foreach.hpp>
52#include <boost/unordered_map.hpp>
55#elif defined(ALEMBIC_LIB_USES_TR1)
57#include <tr1/unordered_map>
61#include <unordered_map>
88#ifndef WIN32_LEAN_AND_MEAN
89#define WIN32_LEAN_AND_MEAN
104#ifndef ALEMBIC_VERSION_NS
105#define ALEMBIC_VERSION_NS v12
125#ifdef ALEMBIC_LIB_USES_BOOST
126using boost::dynamic_pointer_cast;
127using boost::enable_shared_from_this;
128using boost::shared_ptr;
129using boost::static_pointer_cast;
130using boost::weak_ptr;
131using boost::unordered_map;
133#elif defined(ALEMBIC_LIB_USES_TR1)
134using std::tr1::dynamic_pointer_cast;
135using std::tr1::enable_shared_from_this;
136using std::tr1::shared_ptr;
137using std::tr1::static_pointer_cast;
138using std::tr1::weak_ptr;
139using std::tr1::unordered_map;
142using std::dynamic_pointer_cast;
143using std::enable_shared_from_this;
144using std::shared_ptr;
145using std::static_pointer_cast;
147using std::unordered_map;
148using std::unique_ptr;
151#if defined(ALEMBIC_LIB_USES_BOOST) || defined(ALEMBIC_LIB_USES_TR1)
165 unique_ptr( T* val ) : p(val)
180 T* operator->()
const
224 InitializeCriticalSection(&cs);
229 DeleteCriticalSection(&cs);
234 EnterCriticalSection(&cs);
239 LeaveCriticalSection(&cs);
254 pthread_mutex_init( &m, NULL );
259 pthread_mutex_destroy( &m );
264 pthread_mutex_lock( &m );
269 pthread_mutex_unlock( &m );
#define ALEMBIC_VERSION_NS
friend bool operator>(const T &x, const T &y)
friend bool operator<=(const T &x, const T &y)
friend bool operator!=(const T &x, const T &y)
friend bool operator>=(const T &x, const T &y)