본문 바로가기

Study/C++

[오류] 클래스 템플릿 "std::array"에 대한 인수가 너무 적습니다

클래스 템플릿 "std::array"에 대한 인수가 너무 적습니다   오류

 

1. 오류 설명과 원인

CLR 프로젝트에서 다른 프로젝트의 클래스를 include하여 쓸 때 종종 나는 오류다.

String^>^에 빨간 줄이 쳐지며 인수가 너무 적다고 한다.

원인은 #include한 .h파일에서 using namespace를 쓰고 있기 때문이다. 아래 사진에선 controller가 쓰고있었다.

 

Controller.h를 인클루드 했더니 오류뿜뿜

 

 

 

원인 : using namespace std

 

2. 해결 방법

해결 방법은 두 가지다.

  1. 문제있는 .h파일에서 using namespace std를 빼기
  2. void main(array<String^>^ args)에서 안의 파라미터를 다 삭제해버리기 → void main()으로 이용

어떤 방법을 써도 잘 돌아간다.

namespace std를 많이 해 놨다면 그냥 2번 방법을 쓰자. 잘 돌아가니까.

 

2번 방법. 잘 돌아간다.

 

참고:

오류 발생 원인을 하나하나 소거법으로 분석한 나 자신