FIX: 오류가 나타날 때 메시지 있는 "네임스페이스를 사용하여 std" 지시문을 친구 연산자 앞에 놓입니다

기술 자료 번역 기술 자료 번역
기술 자료: 192539 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

때, "네임스페이스를 사용하여 std" 지시문을 친구 연산자를 선언 앞에 놓입니다, 다음 두 가지 오류 중 하나가 나타날 수 있습니다.

경우 1
C2248 오류: [멤버 변수 이름]: 액세스 전용 멤버 클래스 [클래스 이름] 선언할 수 없습니다 [파일 이름] (여러 줄): 변수의 선언을 [구성원]을 참조하십시오.
사례 2
[파일 이름](여러 줄): 심각한 오류 C1001: 내부 컴파일러 오류

(컴파일러 파일 'msc1.cpp', 줄 1786)
Visual C++ 도움말 메뉴에서 기술 지원 명령을 선택하거나 자세한 내용은 기술 지원 도움말 파일을 엽니다.

cl.exe 실행하는 동안 오류가 발생했습니다.

원인

std 네임스페이스가 추가될 때 친구 연산자 확인 프런트 엔드 컴파일러 오류가 발생합니다.

해결 방법

지원되는 핫픽스를 이제 Microsoft에서 사용할 수 있지만 이 문서에서 설명하는 문제를 해결하기 위한 것일 뿐입니다. 이러한 특정 문제가 발생하는 시스템에만 적용해야. 이 핫픽스는 나중에 추가 테스트를 받아야 할 수도 있습니다. 따라서 이 문제의 영향이 심각한 경우가 아니면 Visual Studio이 이 핫픽스가 포함된 6.0에 대해 다음 서비스 팩 3 때까지 기다리는 것이 좋습니다.

이 문제를 즉시 해결하려면 핫픽스를 구하려면 Microsoft 기술 지원 서비스에 문의하십시오. Microsoft 고객기술지원부 전화 번호 및 지원 비용에 대한 정보를 전체 목록은 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/contactus/?ws=support
참고 Microsoft 기술 지원 전문가가 특정 업데이트로 문제를 해결할 수 있다고 판단하는 경우, 일반적으로 지원 호출에 발생하는 비용이 취소될 수 있습니다. 추가 지원 질문과 문제에는 특정 업데이트가 필요하지 않은 지원 비용이 적용됩니다.이 수정의 영어 버전은 다음 파일 특성을 가집니다 또는 나중에:
   Date      Time      Size        File Name  Version#      Platform
   -----------------------------------------------------------------

   9/15/98   08:26p    1,183,795   C1xx.dll   12.00.8257.0  (x86)
				

해결 과정

이 문제를 해결하려면 다음 중 하나를 실행하십시오.
  • 이동할 경우 "네임스페이스를 사용하여 std" 친구 연산자 선언 뒤에 지시문.
  • 사용하지 않는 경우 "네임스페이스를 사용하여 std" 지시문을.
  • 앞으로 연산자 또는 클래스를 선언하십시오.

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 제품에서 이 문제를 확인했습니다.이 버그는 Visual Studio 6.0 서비스 팩 3에서 수정되었습니다.

Visual Studio 서비스 팩에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
194022Visual Studio 6.0 서비스 팩, 어떤, 위치, 이유
194295Visual Studio 서비스 팩이 설치되었는지 확인하는 방법

추가 정보

Test1.cpp 경우 1 C2248 오류 재생하기

   // test1.cpp
   // Compiler options needed: cl /c /GX
   #include <iostream>

   using namespace std;

   #ifdef WORKAROUND
   class CMyClass;
   ostream& operator <<(ostream &, const CMyClass &);
   #endif // WORKAROUND

   class CMyClass
   {
   public:

     friend ostream& operator <<(ostream &, const CMyClass &);
     // An alternative workaround is to define the operator in the
     // class declaration. In this case it is not necessary to forward
     // declare the class and friend function.

   private:

      int value;
   };

   ostream& operator <<(ostream& out, const CMyClass& m)
   {

      int i = m.value;  // C2248 Error
      return out;
   }

   void main()
   { }
				

Test2.cpp 경우 2 C1001 오류를 재생하기

   // test2.cpp
   // Compiler options needed: cl /c /GX
   #include <iostream>

   using namespace std;

   #ifdef WORKAROUND
   int operator+(int, const class &);
   #endif // WORKAROUND

   class CMyClass
   {
   public:

     friend int operator+(int, const CMyClass &);  // C1001 Error.

   };

   void main()
   { }
				

속성

기술 자료: 192539 - 마지막 검토: 2005년 10월 7일 금요일 - 수정: 3.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
키워드:?
kbmt kbhotfixserver kbqfe kbqfe kbbug kberrmsg kbfix kblangcpp kbvs600sp3fix KB192539 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com