2013-08-17 2 views
1

TR1의 일부 유형/기능을 사용하려고합니다. 이 오류의 결과입니다TR1이 "누락되었습니다"- 프로젝트 구성에서 누락 된 헤더 또는 라이브러리는 무엇입니까?

#include <tr1/functional> 

:이 항상 이전에 근무하고있다

C1083: Cannot open include file: 'tr1/functional': No such file or directory.

내 헤더 파일에 다음과 같은 기준을 가지고있다. 내가 라이브러리 참조 또는 일종의 뭔가가 빠졌는지 확인하려고 MSDN을 브라우징했지만 내 인생에 대한 내 프로젝트 구성에 무엇이 잘못되었는지 알 수 없습니다.

저는 C++ 11을 사용 중이며 Visual Studio 2013 Developer Preview에서 작업하고 있습니다.

+5

C++ 11을 사용하는 경우'#include '. TR1은 미리보기와 같았습니다. – chris

+0

'tr1'은 VS2010과 같은 구형 컴파일러 용이었습니다. 비록 내가 모든 것을'std :: tr1' 네임 스페이스 밖으로 옮겼음에도 불구하고'std :: regex'는'std :: tr1 :: regex'에서 멈추게됩니다. – Rapptz

+0

@chris, Rapptz, 고맙습니다. 저는 C++ 11을 처음 접했습니다. 여러분 중 누구라도 정상적인 대답을하면 올바른 것으로 표시하겠습니다. –

답변

3

<tr1/*> 헤더는 표준에 포함 된 후 사용되지 않거나 제거되어야합니다. 그래서 그들은 VS2010이나 VS2008 같은 구형 컴파일러를 주로 사용합니다. 혼자 <functional>을 포함 시켜서 고쳐야합니다. 그 이전 std::tr1 네임 스페이스에 상주 여전히 아직 <regex>입니다 std::regex 's이 (가) 포함한다는 것이다 VS2013에 적용되는 경우 나도 몰라하지만

몇 가지,하지만주의한다.

+0

방금 ​​VS2013을 확인했습니다. 'std :: regex'는 잘 동작합니다 (즉, 컴파일하고 "abc"와 "..."를 정확하게 일치시킵니다). – chris

+2

TR1 헤더는 ** 더 이상 사용되지 않습니다 **. TR1은 C++ 11과 독립적입니다. TR1에 있던 대부분의 것들이 C++ 11에 추가되었으며,위원회는 최근에 TR1이 소멸되도록 결정했습니다. 그렇다고해서 공급 업체가 TR1을 계속 출고하는 것을 방해하지는 않습니다. –

1

나는 또한 VS 2013을 사용하고 있으며 동일한 문제에 직면 해 있습니다. 몇 가지 연구 끝에, 마지막으로 Boost를 사용하여 작업하게되었습니다. 그것은 잘 지원됩니다.

관련 문제