Search code examples
c++templatesc++-loki

Can I use loki ObjectLevelLockable in c++0x template


I want to create a thread safe fifo list using Loki library, but I can't create a guard because I'm using gcc 4.3 and it doesn't support alias templates:

....
template <typename T> MyFIFO: public ObjectLevelLockable<MyFIFO<T>>{
....
typedef MyFIFO<T>::Lock MyLock;
....
void some_function(const T& some_variable_name)
{
MyLock _lock(*this);//like in "Modern c++ Design p268"
....some code...
}

Any ideas... without installing gcc 4.7?


Solution

  • typename MyFIFO<T>::Lock is a dependent name, so you need a typename here:

    typedef typename MyFIFO<T>::Lock MyLock;
            ^^^^^^^^