зеркало из https://github.com/microsoft/clang-1.git
88 строки
1.8 KiB
C++
88 строки
1.8 KiB
C++
// RUN: %clang_cc1 -emit-llvm %s -o -
|
|
// PR1634
|
|
|
|
namespace Manta
|
|
{
|
|
class CallbackHandle
|
|
{
|
|
protected:virtual ~ CallbackHandle (void)
|
|
{
|
|
}
|
|
};
|
|
template < typename Data1 > class CallbackBase_1Data:public CallbackHandle
|
|
{
|
|
};
|
|
}
|
|
|
|
namespace __gnu_cxx
|
|
{
|
|
template < typename _Iterator, typename _Container >
|
|
class __normal_iterator
|
|
{
|
|
_Iterator _M_current;
|
|
};
|
|
}
|
|
|
|
namespace std
|
|
{
|
|
template < typename _Tp > struct allocator
|
|
{
|
|
typedef _Tp *pointer;
|
|
};
|
|
template < typename _InputIterator,
|
|
typename _Tp > inline void find (_InputIterator __last,
|
|
const _Tp & __val)
|
|
{
|
|
};
|
|
}
|
|
|
|
namespace Manta
|
|
{
|
|
template < typename _Tp, typename _Alloc> struct _Vector_base
|
|
{
|
|
struct _Vector_impl
|
|
{
|
|
_Tp *_M_start;
|
|
};
|
|
public:
|
|
_Vector_impl _M_impl;
|
|
};
|
|
template < typename _Tp, typename _Alloc = std::allocator < _Tp > >
|
|
class vector:protected _Vector_base < _Tp,_Alloc >
|
|
{
|
|
public:
|
|
typedef __gnu_cxx::__normal_iterator < typename _Alloc::pointer,
|
|
vector < _Tp, _Alloc > > iterator;
|
|
iterator end ()
|
|
{
|
|
}
|
|
};
|
|
class MantaInterface
|
|
{
|
|
};
|
|
class RTRT
|
|
{
|
|
virtual CallbackHandle *registerTerminationCallback (CallbackBase_1Data <
|
|
MantaInterface * >*);
|
|
virtual void unregisterCallback (CallbackHandle *);
|
|
typedef vector < CallbackBase_1Data < int >*>PRCallbackMapType;
|
|
PRCallbackMapType parallelPreRenderCallbacks;
|
|
};
|
|
}
|
|
using namespace Manta;
|
|
CallbackHandle *
|
|
RTRT::registerTerminationCallback (CallbackBase_1Data < MantaInterface * >*cb)
|
|
{
|
|
return cb;
|
|
}
|
|
|
|
void
|
|
RTRT::unregisterCallback (CallbackHandle * callback)
|
|
{
|
|
{
|
|
typedef CallbackBase_1Data < int > callback_t;
|
|
callback_t *cb = static_cast < callback_t * >(callback);
|
|
find (parallelPreRenderCallbacks.end (), cb);
|
|
}
|
|
}
|