2014-01-06 5 views
0

Loki 라이브러리를 사용하여 스레드 안전 FIFO 목록을 만들고 싶지만 gcc 4.3을 사용하고 있기 때문에 경비를 만들 수 없으며 별칭 템플릿을 지원하지 않습니다. :loki ObjectLevelLockable을 C++ 0x 템플릿에서 사용할 수 있습니까?

.... 
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

고대 아닌 컴파일러를 설치에 문제가 무엇입니까? – PlasmaHH

+3

gcc 4.8을 설치 하시겠습니까? – juanchopanza

+0

@PlasmaHH는 대상 시스템의 소유자가 아닙니다. – LucianMLI

답변

3

typename MyFIFO<T>::Lock 당신이 typename 여기에서 필요로하므로, 종속 이름입니다

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

정말 고맙습니다.하지만 객체가없는 호출 멤버가 생겼습니다 ... 더 많은 코드가 손상된 것 같습니다. – LucianMLI

+0

@ LucianMLI 맞아요. 다른 관련없는 오류처럼 들립니다. – juanchopanza

+0

나는 그것을 _lock (* this)에서 얻는다. 나는 손으로 Loki lib, 다중 쓰레드 부분을 복사 했으므로 뭔가를 놓쳤을지도 모른다. – LucianMLI