Могу ли я использовать loki ObjectLevelLockable в шаблоне c ++ 0x

0

Я хочу создать потокобезопасный список fifo, используя библиотеку Loki, но я не могу создать защиту, потому что я использую 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...
}

Любые идеи... без установки gcc 4.7?

  • 0
    В чем проблема с установкой не древнего компилятора?
  • 3
    Установить gcc 4.8?
Показать ещё 3 комментария
Теги:
templates
loki

1 ответ

3
Лучший ответ

typename MyFIFO<T>::Lock - зависимое имя, поэтому здесь вам нужно typename:

typedef typename MyFIFO<T>::Lock MyLock;
        ^^^^^^^^
  • 0
    Большое спасибо, но теперь я получил член вызова без объекта ... Я думаю, что у него есть еще один неработающий код.
  • 0
    @LucianMLI правильно, это звучит как другие, не связанные ошибки.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню