简体   繁体   English

我可以在C ++ 0x模板中使用loki ObjectLevelLockable吗

[英]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: 我想使用Loki库创建一个线程安全的fifo列表,但是我无法创建防护,因为我使用的是gcc 4.3,它不支持别名模板:

....
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? 有什么想法...无需安装gcc 4.7吗?

typename MyFIFO<T>::Lock is a dependent name, so you need a typename here: typename MyFIFO<T>::Lock是一个从属名称,因此您在这里需要一个typename

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM