나는 추상 기본 클래스 A와 10 개의 파생 클래스 집합을 가지고 있습니다. 중위 연산자 기본 클래스 포인터를 저장하는 용기가 파생 된 클래스부스트 바인딩 함수
class A{
public:
void printNode(std::ostream& os)
{
this->printNode_p();
}
protected:
virtual void printNode_p(std::ostream& os)
{
os << (*this);
}
};
모든 오버로드된다. boost :: bind 함수를 사용하여 각각의 파생 클래스에서 중첩 된 중위 연산자를 호출하려고합니다. 나는 이렇게 작성했습니다
std::vector<A*> m_args
....
std::ostream os;
for_each(m_args.begin(), m_args.end(), bind(&A::printNode, _1, os));
이 코드의 문제점은 무엇입니까? Visual Studio에서 나는이
오류 C2248과 같은 오류가 점점 오전 : '표준 : basic_ios < _Elem, _Traits> :: basic_ios'을 : 클래스 '표준 : basic_ios에 선언 개인 회원 에 액세스 할 수 없습니다 < _Elem, _Traits> '
감사합니다, Gokul.
이 문제는 무엇입니까? 컴파일하지 않거나 원하는 것을하지 않습니까? –
@Alex : 오류가있는 게시물을 – Gokul