提升microsec_time_clock.hpp警告C4244

时间:2009-08-27 22:17:19

标签: c++ boost boost-thread

我是使用boost的新手并遇到问题。我的项目中需要shared_mutex函数。所以我已经完成了

#include "boost/thread/shared_mutex.hpp"

编译了我的项目。我的MSVC 2005“将警告视为错误”会因为警告而停止编译:

c:\\...\microsec_time_clock.hpp(103) : warning C4244: 'argument' : conversion from 'int' to 'unsigned short', possible loss of data

我不知道,为什么shared_mutex需要微秒函数(我读过比boost库有相当大的依赖列表),但是我无法编译我的项目。我用Google搜索了一下,发现同样的问题,但没有决定。

更新:我现在正在编译boost,但我想把所有资源都放到我的开源项目中,包括boost.thread.shared_mutex。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

我敢打赌他们在未签约的短片上做+ =。添加的结果会隐式转换为int,然后需要向下转换回无符号的赋值。