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_sidefx
125 #ifdef ALEMBIC_LIB_USES_BOOST
126 using boost::dynamic_pointer_cast;
127 using boost::enable_shared_from_this;
128 using boost::shared_ptr;
129 using boost::static_pointer_cast;
130 using boost::weak_ptr;
131 using boost::unordered_map;
133 #elif defined(ALEMBIC_LIB_USES_TR1)
134 using std::tr1::dynamic_pointer_cast;
135 using std::tr1::enable_shared_from_this;
136 using std::tr1::shared_ptr;
137 using std::tr1::static_pointer_cast;
138 using std::tr1::weak_ptr;
139 using std::tr1::unordered_map;
142 using std::dynamic_pointer_cast;
143 using std::enable_shared_from_this;
144 using std::shared_ptr;
145 using std::static_pointer_cast;
147 using std::unordered_map;
148 using 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 );
GLuint const GLfloat * val
friend bool operator>=(const T &x, const T &y)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint 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)
#define ALEMBIC_VERSION_NS