Microsoft C/C++ 컴파일러 경고 C4800~C4999
이 섹션의 문서에서는 Microsoft C/C++ 컴파일러 경고 메시지 C4800~C4999에 대해 설명합니다.
Important
Visual Studio 컴파일러와 빌드 도구는 다양한 종류의 오류와 경고를 보고할 수 있습니다. 빌드 도구에서 오류 또는 경고가 발견된 후, 시도와 코드 의도를 추측하므로 더 많은 문제가 동시에 보고될 수 있습니다. 도구의 추측이 잘못된 경우 이후 오류나 경고를 프로젝트에 적용할 수 없습니다. 프로젝트에서 문제를 수정하는 경우 항상 보고된 첫 번째 오류나 경고에서 시작하고 자주 다시 빌드하십시오. 한 번의 수정으로 인해 이후에 발생하는 많은 오류가 사라질 수 있습니다.
Visual Studio에서 특정 진단 메시지에 대한 도움말을 보려면 출력 창에서 해당 메시지를 선택하고 F1 키를 누릅니다. Visual Studio에서는 해당 오류에 대한 설명서 페이지가 열립니다(있는 경우). 페이지 상단의 검색 도구를 사용하여 특정 오류나 경고에 대한 문서를 찾을 수도 있습니다. 또는 도구별 오류 및 경고 목록을 찾아보고 이 페이지의 목차에 입력합니다.
참고 항목
모든 Visual Studio 오류 또는 경고가 문서화되어 있는 것은 아닙니다. 대부분의 경우 진단 메시지는 사용 가능한 모든 정보를 제공합니다. F1 키를 사용하여 이 페이지를 방문했는데 오류 또는 경고 메시지에 추가 설명이 필요하다고 생각되면 알려 주시기 바랍니다. 이 페이지의 피드백 단추를 사용하여 GitHub에 설명서 문제를 제기할 수 있습니다. 오류나 경고가 잘못되었다고 생각하거나 도구 집합에서 다른 문제를 발견한 경우 Developer Community 사이트에 제품 문제를 보고합니다. IDE 내에서 피드백을 보내고 버그를 입력할 수도 있습니다. Visual Studio에서 메뉴 모음으로 이동하여 도움말 > 피드백 보내기 > 문제 보고를 선택하거나 도움말 > 피드백 보내기 > 제안 보내기를 사용하여 제안 사항을 제출합니다. 컴파일러에서 발생하지 않는 일부 컴파일러 오류 항목이 생성되었으며 이제 대신 이 페이지로 리디렉션됩니다.
Microsoft Learn Q&A 포럼에서 오류 및 경고에 대한 추가 지원을 찾을 수 있습니다. 또는 Visual Studio C++ Developer Community 사이트에서 오류 또는 경고 번호를 검색합니다. Stack Overflow를 검색하여 솔루션을 찾을 수도 있습니다.
추가 도움말 및 커뮤니티 리소스에 대한 링크는 Visual C++ 도움말 및 커뮤니티를 참조하세요.
경고 메시지
Warning | 메시지 |
---|---|
컴파일러 경고(수준 4, 해제) C4800 | 'type'에서 bool 로의 암시적 변환입니다. 정보 손실 가능성 |
컴파일러 경고 C4801 | 참조로 반환하면 확인할 수 없습니다. message |
컴파일러 경고(수준 1) C4803 | 'method': raise 메서드에 이벤트 'event'의 스토리지 클래스와 다른 스토리지 클래스가 있습니다. |
컴파일러 경고(수준 1) C4804 | 'operation': 연산에 'bool ' 형식을 사용하는 것은 안전하지 않습니다. |
컴파일러 경고(수준 1) C4805 | 'operation': 연산에 'type1' 형식과 'type2' 형식을 함께 사용하는 것은 안전하지 않습니다. |
컴파일러 경고(수준 1) C4806 | 'operation': 안전하지 않은 연산입니다. 'type1' 형식의 값('type2' 형식으로 승격)이 주어진 상수와 같을 수 없습니다. |
컴파일러 경고(수준 1) C4807 | 'operation': 'type1' 형식과 'type2' 형식의 부호 있는 비트 필드를 함께 사용하는 것은 안전하지 않습니다. |
컴파일러 경고(수준 1) C4808 | case 'value'은(는) 'bool ' 형식의 switch 조건에 대한 올바른 값이 아닙니다. |
컴파일러 경고(수준 1) C4809 | switch 문에 중복 'default ' 레이블이 있습니다. 가능한 모든 'case ' 레이블이 제공됩니다. |
컴파일러 경고(수준 1) C4810 | pragma pack(show) 값 == n |
컴파일러 경고(수준 1) C4811 | pragma conform(forScope, show) == value 값 |
컴파일러 경고(수준 1) C4812 | 사용되지 않는 선언 스타일입니다. 대신 'new_syntax'을(를) 사용하세요. |
컴파일러 경고(수준 1) C4813 | 'function': 지역 클래스의 friend 함수를 미리 선언해야 합니다. |
컴파일러 경고(수준 4) C4815 | 'object name': 개체가 집계 초기화된 집계인 경우를 제외하고 스택 개체에서 크기가 0인 배열은 요소를 갖지 않습니다. |
컴파일러 경고(수준 4) C4816 | 'param': 매개 변수에 크기가 0인 배열이 있으면 잘리게 됩니다(개체가 참조로 전달된 경우 제외). |
컴파일러 경고(수준 1) C4817 | 'member': 이 멤버에 액세스하기 위해 '.'를 사용할 수 없습니다. 컴파일러는 '->'로 바뀝니다. |
컴파일러 경고(수준 1) C4819 | 현재 코드 페이지(번호)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하세요. |
컴파일러 경고(수준 4, 해제) C4820 | 'bytes'바이트 채움 문자가 construct 'member_name' 뒤에 추가되었습니다. |
컴파일러 경고(수준 1) C4821 | 유니코드 인코딩 형식을 확인할 수 없습니다. 시그니처(BOM)를 사용하여 파일을 저장하세요. |
컴파일러 경고(수준 1, 해제) C4822 | 'member function': 지역 클래스 멤버 함수에 본문이 없습니다. |
컴파일러 경고(수준 3) C4823 | 'function': 고정 포인터를 사용하지만 해제 의미 체계는사용하도록 설정되지 않았습니다. /EHa 를 사용하는 것이 좋습니다. |
컴파일러 경고(수준 2, 해제) C4826 | 'type1'에서 'type2'(으)로의 변환이 부호 확장되었습니다. 예기치 않은 런타임 동작이 발생할 수 있습니다. |
컴파일러 경고(수준 3) C4827 | 매개 변수가 0개인 공용 'ToString ' 메서드는 virtual 및 override 로 표시되어야 합니다. |
컴파일러 경고(수준 1) C4828 | 파일에 0xHexOffset 오프셋에서 시작하는 문자가 포함되어 있습니다. 이 문자는 현재 원본 문자 집합에서 잘못된 문자입니다(코드 페이지 codepage). |
컴파일러 경고(수준 1) C4829 | main 함수에 대한 매개 변수가 잘못된 것 같습니다. 'int main(Platform::Array<Platform::String^>^ argv) '를 가정해보세요. |
컴파일러 경고(수준 1) C4834 | 'nodiscard' 특성이 포함된 함수의 반환 값을 버립니다. |
컴파일러 경고(수준 1) C4835 | 'variable': 내보낸 데이터의 이니셜라이저는 관리 코드가 호스트 어셈블리에서 먼저 실행되어야 실행됩니다. |
컴파일러 경고(수준 4, 해제) C4837 | 삼중자가 발견되었습니다. '?? character'이(가) 'character'(으)로 바뀝니다. |
컴파일러 경고(수준 1) C4838 | 'type_1'에서 'type_2'(으)로의 변환에는 축소 변환이 필요합니다. |
컴파일러 경고(수준 3) C4839 | variadic 함수의 인수로서 'type' 클래스를 비표준 방식으로 사용했습니다. |
컴파일러 경고(수준 4) C4840 | variadic 함수의 인수로서 'type' 클래스를 이식 불가능하게 사용했습니다. |
컴파일러 경고(수준 4, 해제) C4841 | 비표준 확장 사용: 복합 멤버 지정자가 offsetof 에 사용됩니다. |
컴파일러 경고(수준 4, 해제) C4842 | 여러 상속을 사용하는 형식에 적용된 'offsetof '의 결과가 컴파일러 릴리스 간에 일치하는 것으로 보장되지 않습니다. |
컴파일러 경고(수준 4) C4843 | 'type1': 배열 또는 함수 형식에 대한 참조의 예외 처리기에 연결할 수 없습니다. 대신 'type2'을(를) 사용하세요. |
컴파일러 경고(수준 1) C4844 | 'export module module_name ; '은(는) 이제 모듈 인터페이스를 선언하는 데 사용되는 기본 구문입니다. |
컴파일러 경고(수준 4) C4845 | 명령줄에서 '/d1initall[0|1|2|3] '을 지정하지 않으면 '__declspec(no_init_all) '이 무시됩니다. |
컴파일러 경고(수준 4) C4846 | 'value'은(는) '/d1initall '에 대해 유효한 인수가 아닙니다. 명령줄 플래그가 무시되었습니다. |
컴파일러 경고(수준 4) C4847 | '__declspec(no_init_all) '는 함수, 클래스 형식 또는 지역 변수에만 적용할 수 있습니다. 무시됩니다. |
컴파일러 경고(수준 1) C4848 | C++17 및 이전 버전에서 표준 특성 'no_unique_address '에 대한 지원은 공급업체 확장입니다. |
컴파일러 경고(수준 1) C4849 | 'directive' 지시문에서 OpenMP 'clause' 절이 무시되었습니다. |
컴파일러 경고(수준 1, 오류) C4854 | 역참조된 null 포인터를 참조에 바인딩하는 데 정의되지 않은 동작이 있습니다. |
컴파일러 경고(수준 1, 해제) C4855 | 'version'에서 '[=] '를 통한 'this '의 암시적 캡처가 사용되지 않습니다. |
컴파일러 경고(수준 4) C4856 | 'value'은(는) '/d1initAll:FillPattern '에 대한 유효한 인수가 아닙니다(값은 0에서 255 사이여야 함). 명령줄 플래그가 무시됩니다. |
컴파일러 경고(수준 1) C4857 | C++/CLI 모드에서는 C++17보다 최신인 C++ 버전을 지원하지 않습니다. 언어를 /std:c++17 로 설정합니다. |
컴파일러 경고(수준 1) C4858 | 반환 값을 삭제하는 중: function name |
컴파일러 경고(수준 4) C4859 | 'value'은(는) '/presetWarn '에 대한 유효한 인수가 아닙니다. 10진 값 > 0이어야 합니다. 명령줄 플래그가 무시됩니다. |
컴파일러 경고(수준 4) C4860 | 'object name': 컴파일러가 0으로 초기화한 스토리지 'number' 바이트 |
컴파일러 경고(수준 4) C4861 | 컴파일러가 0으로 초기화된 스토리지 'number'바이트 |
컴파일러 경고(수준 4) C4866 | 컴파일러는 operator_name에 대한 호출에 대해 왼쪽에서 오른쪽으로 계산 순서를 적용할 수 없습니다. |
컴파일러 경고(수준 1, 오류) C4867 | 'function': 함수 호출에 인수 목록이 없습니다. 'call'을(를) 사용하여 멤버에 대한 포인터를 만드세요. |
컴파일러 경고(수준 4) C4868 | 'file(line_number)' 컴파일러가 중괄호로 묶인 이니셜라이저 목록에서 왼쪽에서 오른쪽으로 계산 순서를 적용할 수 없습니다. |
컴파일러 경고(수준 3) C4869 | 'nodiscard '는 클래스, 열거형 및 함수에만 적용할 수 있습니다. |
컴파일러 경고(수준 2) C4872 | 'location'에서 concurrency::parallel_for_each 에 대해 호출 그래프를 컴파일하는 동안 부동 소수점 0으로 나누기가 발견되었습니다. |
컴파일러 경고(수준 1) C4880 | 'const type_1'에서 'type_2'(으)로 캐스트: 포인터 또는 참조에서 상수성을 캐스트하면 AMP 제한 함수에서 정의되지 않은 동작이 발생할 수 있습니다. |
컴파일러 경고(수준 4) C4881 | tile_static 변수 'variable-name'에 대해 생성자 및/또는 소멸자가 호출되지 않습니다. |
컴파일러 경고(수준 1) C4882 | concurrency::parallel_for_each 에 대한 비 const 호출 연산자를 사용한 함수 전달은 더 이상 사용되지 않습니다. |
컴파일러 경고 C4883 | 'function name': 함수 크기로 인해 최적화가 수행되지 않습니다. |
컴파일러 경고 C4900 | 'tool1' 버전 'version1'과(와) 'tool2' 버전 'version2' 사이에 불일치가 있습니다. |
컴파일러 경고(수준 1, 해제) C4905 | 와이드 문자열 리터럴을 'LPSTR '(으)로 캐스트했습니다. |
컴파일러 경고(수준 1, 해제) C4906 | 문자열 리터럴을 'LPWSTR '(으)로 캐스트했습니다. |
컴파일러 경고(오류) C4907 | 여러 호출 규칙을 지정할 수 없습니다. 마지막으로 지정된 것이 사용됩니다. |
컴파일러 경고(수준 1) C4910 | '<identifier>': '__declspec(dllexport)' 및 'extern'이 명시적 인스턴스화에서 호환되지 않습니다. |
컴파일러 경고(수준 1) C4912 | 'attribute': 특성의 중첩 UDT에 정의되지 않은 동작이 있습니다. |
컴파일러 경고(수준 4) C4913 | 사용자 정의 이항 연산자 ', '이(가) 존재하지만 오버로드가 모든 피연산자를 변환하지 못했습니다. 기본 내장 이항 연산자 ', '이(가) 사용됩니다. |
컴파일러 경고(수준 1) C4916 | dispid 를 사용하려면 인터페이스에서 'description'을(를) 정의해야 합니다. |
컴파일러 경고(수준 1, 해제) C4917 | 'declarator': GUID는 클래스, 인터페이스 또는 네임스페이스와만 연결할 수 있습니다. |
컴파일러 경고(수준 4) C4918 | 'character': pragma 최적화 목록에 잘못된 문자가 있습니다. |
컴파일러 경고(수준 1) C4920 | 열거형 enum-name 멤버 member_1=value_1이(가) 열거형 enum-name에서 member_2=value_2(으)로 표시됩니다. |
컴파일러 경고(수준 3) C4921 | 'description': 'attribute' 특성 값은 여러 번 지정하지 않아야 합니다. |
컴파일러 경고(수준 1) C4925 | 'method': 스크립트에서 dispinterface 메서드를 호출할 수 없습니다. |
컴파일러 경고(수준 1) C4926 | 'identifier': 기호를 이미 정의했으며 특성은 무시됩니다. |
컴파일러 경고(수준 1) C4927 | 변환이 잘못되었습니다. 사용자 정의 변환이 암시적으로 두 번 이상 적용되었습니다. |
컴파일러 경고(수준 1, 해제) C4928 | 복사 초기화가 잘못되었습니다. 사용자 정의 변환이 암시적으로 두 번 이상 적용되었습니다. |
컴파일러 경고(수준 1) C4929 | 'file': 형식 라이브러리에 공용 구조체가 있습니다. 'embedded_idl' 한정자가 무시됩니다. |
컴파일러 경고(수준 1) C4930 | 'prototype': 프로토타입 함수가 호출되지 않았습니다. 변수 정의로 사용하려고 한 것은 아닌지 확인하세요. |
컴파일러 경고(수준 4, 해제) C4931 | number비트 포인터에 대한 형식 라이브러리를 빌드했다고 간주합니다. |
컴파일러 경고(수준 4) C4932 | __identifier( identifier) 과(와) __identifier( identifier) 을(를) 구별할 수 없습니다. |
컴파일러 경고(수준 1) C4934 | '__delegate(multicast) '은(는) 사용되지 않습니다. 대신 '__delegate '을(를) 사용하세요. |
컴파일러 경고(수준 1) C4935 | 어셈블리 액세스 지정자가 'access'에서 변경되었습니다. |
컴파일러 경고(수준 1, 오류) C4936 | /clr 또는 /clr:pure 를 지정하여 컴파일한 경우에만 이 __declspec를 사용할 수 있습니다. |
컴파일러 경고(수준 4) C4937 | 'text1' 및 'text2'을(를) 'directive'에 대한 인수로 구분할 수 없습니다. |
컴파일러 경고(수준 4) C4938 | 'var': /fp:strict 또는 #pragma fenv_access 를 지정하면 부동 소수점 환산(reduction) 변수로 인해 일관성 없는 결과가 발생할 수 있습니다. |
컴파일러 경고 C4939 | #pragma vtordisp는 사용되지 않으므로 이후 Visual C++ 릴리스에서 제거될 예정입니다. |
컴파일러 경고(수준 1) C4944 | 'symbol': 'symbol'이(가) 현재 범위에 이미 있으므로 'assembly1'에서 기호를 가져올 수 없습니다. |
컴파일러 경고(수준 1) C4945 | 'symbol': 'symbol'을(를) 다른 어셈블리 'assembly2'에서 이미 가져왔으므로 'assembly1'에서 기호를 가져올 수 없습니다. |
컴파일러 경고(수준 1, 해제) C4946 | 관련 클래스 'class1'과(와) 'class2' 사이에 reinterpret_cast 가 사용되었습니다. |
컴파일러 경고(수준 1) C4947 | 'type_or_member': 사용되지 않는 것으로 표시되었습니다. |
컴파일러 경고(수준 2) C4948 | 'accessor'의 반환 형식이 해당 setter의 마지막 매개 변수 형식과 일치하지 않습니다. |
컴파일러 경고(수준 1 및 수준 4) C4949 | pragma 'managed ' 및 'unmanaged '은(는) '/clr[:option] '로 컴파일할 때만 의미가 있습니다. |
컴파일러 경고(수준 1, 오류) C4950 | 'type_or_member': 사용되지 않는 것으로 표시되었습니다. |
컴파일러 경고(수준 1) C4951 | 프로필 데이터가 수집된 이후 'function'이(가) 편집되었습니다. 함수 프로필 데이터가 사용되지 않습니다. |
컴파일러 경고(수준 1) C4952 | ‘function': 프로그램 데이터베이스 'pgd-file'에 프로필 데이터가 없습니다. |
컴파일러 경고(수준 1) C4953 | 프로필 데이터가 수집된 이후 'function' 인라인이 편집되었습니다. 프로필 데이터가 사용되지 않습니다. |
컴파일러 경고 C4954 | 'function': 프로파일링되지 않았습니다(__int64 switch 식 포함). |
컴파일러 경고 C4955 | 'import2': 이미 'import1'에서 가져왔으므로 가져오기가 무시되었습니다. |
컴파일러 경고(수준 1, 오류) C4956 | 'type': 이 형식은 확인할 수 없습니다. |
컴파일러 경고(수준 1, 오류) C4957 | 'cast': 'cast_from'에서 'cast_to'로의 명시적 캐스트는 확인할 수 없습니다. |
컴파일러 경고(수준 1, 오류) C4958 | 'operation': 포인터 산술 연산은 확인할 수 없습니다. |
컴파일러 경고(수준 1, 오류) C4959 | 해당 멤버에 액세스하면 비안정형 코드가 생성되므로 /clr:safe 에서 비관리형 'type' 형식을 정의할 수 없습니다. |
컴파일러 경고(수준 4) C4960 | 'function'이(가) 너무 커서 프로파일링할 수 없습니다. |
컴파일러 경고(수준 1) C4961 | 프로필 데이터가 'pgd-file'에 병합되지 않았습니다. 프로필 기반 최적화를 사용하지 않습니다. |
컴파일러 경고(수준 4, 해제) C4962 | 'function': 최적화를 하면 프로필 데이터가 일관성이 없어지므로 프로필 기반 최적화를 사용하지 않습니다. |
컴파일러 경고(수준 1) C4963 | 'description': 프로필 데이터가 없습니다. 계측된 빌드에서 다른 컴파일러 옵션을 사용했습니다. |
컴파일러 경고(수준 1) C4964 | 최적화 옵션을 지정하지 않았으므로 프로필 정보가 수집되지 않습니다. |
컴파일러 경고(수준 1) C4965 | 정수 0을 암시적으로 boxing했습니다. nullptr 또는 명시적 캐스트를 사용하세요. |
컴파일러 경고(수준 1) C4966 | 'function'에는 지원되지 않는 세그먼트 이름이 있는 __code_seg 주석이 있으며 주석은 무시됩니다. |
컴파일러 경고 C4970 | 대리자 생성자: 'type'이(가) 정적이므로 대상 개체가 무시됩니다. |
컴파일러 경고(수준 1) C4971 | 인수 순서: 대리 생성자의 <target object>, <target function>은(는) 사용되지 않습니다. <target function>, <target object="">를 사용하세요. |
컴파일러 경고(수준 1, 오류) C4972 | 왼쪽 항의 값(l-value)을 확인할 수 없어 unboxing 작업의 결과를 직접 수정하거나 처리하고 있습니다. |
컴파일러 경고(수준 1) C4973 | 'symbol': 사용되지 않는 것으로 표시되었습니다. |
컴파일러 경고(수준 1) C4974 | 'symbol': 사용되지 않는 것으로 표시되었습니다. |
컴파일러 경고(수준 1) C4975 | 형식 매개 변수 'parameter'에 대해 modopt '[modifier]'이(가) 무시되었습니다. |
컴파일러 경고(수준 1) C4976 | '/W '에 대한 'value' 값이 잘못되었습니다. '1'이 가정됩니다. |
컴파일러 경고(수준 3) C4981 | Warbird: 'function' 함수는 예외 의미 체계가 포함되어 있으므로 인라인이 아니라 __forceinline으로 표시되었습니다. |
컴파일러 경고(수준 3) C4983 | '/analyze:log'에 대한 인수가 디렉터리가 아닌 단일 파일이기 때문에 '/analyze:sarif:hashname'이 무시되었습니다. |
컴파일러 경고 C4984 | 'if constexpr '은(는) C++17 언어 확장입니다. |
컴파일러 경고(수준 4) C4985 | 'symbol_name': 이전 선언에 특성이 없습니다. |
컴파일러 경고(수준 4, 해제) C4986 | 'declaration': 예외 사양이 이전 선언과 일치하지 않습니다. |
컴파일러 경고(수준 4, 해제) C4987 | 비표준 확장 사용: 'throw (...) ' |
컴파일러 경고(수준 4, 해제) C4988 | 'variable': 변수가 클래스/함수 범위 외부에서 선언되었습니다. |
컴파일러 경고(수준 4) C4989 | 'type': 형식에 충돌하는 정의가 있습니다. |
컴파일러 경고(수준 3) C4990 | Warbird: message |
컴파일러 경고(수준 3) C4991 | Warbird: 'function' 함수는 인라인 보호 수준이 부모보다 높으므로 인라인이 아니라 __forceinline 으로 표시되었습니다. |
컴파일러 경고(수준 3) C4992 | Warbird: 'function-name' 함수는 보호할 수 없는 인라인 어셈블리가 포함되어 있으므로 인라인이 아니라 __forceinline 으로 표시되었습니다. |
컴파일러 경고(수준 3) C4995 | 'function': 이름이 #pragma deprecated로 표시되었습니다. |
컴파일러 경고(수준 3) C4996 | 'deprecated-declaration': deprecation-message(또는 "deprecated로 선언됨") |
컴파일러 경고(수준 1) C4997 | 'class': coclass가 COM 인터페이스 또는 의사(pseudo) 인터페이스를 구현하지 않습니다. |
컴파일러 경고(수준 1) C4998 | 예상 실패: expectation(value) |