2009-08-27 6 views
0

나는 부스트를 사용하는 데있어서 새로운 문제가있다. 내 프로젝트에서 shared_mutex 함수가 필요합니다. 그래서 끝났어부스트 microsec_time_clock.hpp 경고 C4244

#include "boost/thread/shared_mutex.hpp" 

그리고 나의 프로젝트를 컴파일했다. "경고를 오류로 처리"나의 MSVC 2005 때문에 경고의 컴파일을 중지 :

내가 shared_mutex는 마이크로 기능을 필요로하는 이유 아무 생각,이 없다 c:\\...\microsec_time_clock.hpp(103) : warning C4244: 'argument' : conversion from 'int' to 'unsigned short', possible loss of data

(I 부스트 라이브러리보다 읽은이 오히려 큰 의존성 목록) ,하지만 내 프로젝트를 컴파일 할 수 없습니다. 나는 약간의 봤어, 같은 문제를 발견했지만 결정.

업데이트 : 지금 부스트를 컴파일 중이지만 boost.thread.shared_mutex를 포함하여 모든 소스를 오픈 소스 프로젝트에 추가하려고합니다.

+0

게시 버전 번호가 도움이 될 수 있습니다. boost/version.hpp에 정의 된 BOOST_LIB_VERSION 매크로에서 찾을 수 있습니다. –

+0

죄송합니다. 컴파일러를 게시했지만 잊어 버렸습니다. 최신 (1.40.0) 버전이 있습니다. – f0b0s

+0

#define BOOST_VERSION 104000 – f0b0s

답변

0

나는 그들이 + = 부호없는 짧은에하고 있어요 내기 할 것이다. 추가 결과는 암시 적으로 int로 캐스트되고 할당을 위해 unsigned short로 다운 캐스팅되어야합니다.

2

다양한 Boost 라이브러리는 레벨 4에서 Visual Studio 빌드에 대한 모든 종류의 경고를 생성합니다. 우리의 미리 컴파일 된 헤더 파일의 예를 들어

, 하나는 가지고

#pragma warning(push, 0) 
#include <boost/asio.hpp> 
#include <boost/asio/streambuf.hpp> 
#include <boost/lexical_cast.hpp> 
#include <boost/noncopyable.hpp> 
#include <boost/thread.hpp> 
#include <boost/scoped_ptr.hpp> 
#include <boost/shared_ptr.hpp> 
#include <boost/system/error_code.hpp> 
#include <boost/xpressive/xpressive.hpp> 
#pragma warning(pop) 
+0

필자는 전문가가 아니라 학생이지만, 어떻게 프로그래머가 경고하는 코드를 작성할 수 있는지 이해할 수 없다. 우리는 (프로그래머, 부스트를 사용하는 프로그래머) 경고를 무시할 수있다. – f0b0s

+0

어디서나 Boost 문서에 포함되어 있는지 잘 모르겠지만 zlib FAQ는 좋은 응답을 가지고 있습니다 : - 경고 ... 적절한 코드를 작성할 수 있습니까? - 수년 전에 우리는 우주의 모든 컴파일러에 대한 경고를 피하려고 시도했다. 시간 낭비 일 뿐이며 일부 컴파일러는 완전히 바보입니다. 이제 코드가 항상 작동하는지 간단히 확인합니다. - http://www.zlib.net/zlib_faq.html#faq35 –