작성
·
112
0
제 ThreadManager.h 소스코드입니다.
이 부분과 Types.h 소스코드를 포함하여 다른 모든 코드가 강사님의 코드와 같습니다.
근데 저는 이상태로 빌드하면
이러한 컴파일오류들이 발생합니다.
해결방법을 찾다가 제 ThreadManager.h 소스코드부분을
std::function
std::mutex
std::vecotr<std::thread>로 바꾸면 해결이 되긴합니다.
하지만 강사님의 소스코드와 같이 std를 붙이지않았을때는 왜 제 코드에선 빌드오류가 나는지 원인을 모르겠습니다.
types.h에 강사님이 작성하신 using을 이용한 코드들 똑같이 작성되어있고 CorePch.h에 using namespace std; 문장또한 존재하며 CorePch.h와 Pch.h include도 빼먹지 않았습니다.. 이유를 몰라 잠이안옵니다 ㅠㅠ..
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
강영석님께서 경험하신 문제는 C++에서 자주 발생하는 네임스페이스와 관련된 문제라고 할 수 있습니다. 직접적으로 std
네임스페이스를 사용하지 않는 경우, 일부 컴파일러나 환경 설정에서 include 순서나 네임스페이스 설정이 영향을 미쳐 이런 문제가 발생할 수 있습니다. 강사님의 코드에서 using namespace std;
구문을 CorePch.h에 포함시켰는데도 오류가 발생하는 것에 대한 원인을 이해하는 것이 중요합니다.
문제의 원인은 여러 가지가 있을 수 있습니다:
1. Include 순서: CorePch.h
또는 다른 헤더 파일들이 실제로 ThreadManager.h
보다 먼저 컴파일러에 의해 처리되었는지 확인해 보세요. #include
의 순서가 중요할 수 있습니다.
전처리기 설정: 어떤 환경에서는 전처리기에 의해 특정 네임스페이스 설정이나 파일이 제대로 적용되지 않는 경우가 있습니다. 이 경우, PCH(Precompiled Header)의 사용이 올바르게 설정되어 있는지 확인이 필요합니다.
다른 파일 설정 문제: Types.h 등의 다른 파일이 제대로 include 되었는지, 네임스페이스 선언이 여전히 유효한지를 확인할 필요가 있습니다. 가령, using namespace std;
구문이 예상과 다르게 적용되지 않을 수 있습니다.
혹시 강사님께도 유사한 문제가 제기된 적 있었다면 관련 답변이 있을 수 있습니다. 다음의 링크를 통해 같은 강좌의 다른 사용자들이 비슷한 문제를 어떻게 해결했는지 확인하실 수 있습니다:
해결하시는 과정에서 다른 궁금한 점이 생기시면 자유롭게 질문해 주세요. 그리고 제가 제공한 해결방법이 도움이 되길 바랍니다. 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.