다음 코드로 인해 어려움을 겪고 있습니다. 기본적으로 클래스 Foo와 중첩 클래스 Bar가 있습니다. 이제는 클래스 Bar 객체의 포인터를 함수에 전달하려고하지만 컴파일되지 않습니다. 누구든지 이걸 도와 줄 수 있니? 고맙습니다.C++ 템플릿 함수가 템플릿 클래스를 매개 변수로 사용
template <typename T>
struct Foo
{
struct Bar
{
T data_;
};
Bar bar_;
};
template <typename T>
void func(Foo<T>::Bar* bar) // Why is this line wrong???
{
}
int main()
{
Foo<int> foo;
foo.bar_.data_ = 17;
func(&foo.bar_);
return 0;
}
의 중복 가능성 ([C++ 템플릿 인수를 추론 할 수 없습니다] http://stackoverflow.com/questions/6060824/c-template-argument-can로 -not-be-deduced) –
(최소한, 복제본은 명백한'typename' 문제를 해결합니다. VC++는 어쨌든 평소대로 미끄러지게 할 것입니다) –