0

我是使用 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 库有相当大的依赖列表),但我无法编译我的项目。我用谷歌搜索了一下,发现同样的问题,但没有决定。

更新:我现在正在编译 boost,但我想将所有源代码放入我的开源项目,包括 boost.thread.shared_mutex。

4

2 回答 2

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)
于 2009-08-29T03:05:52.073 回答
0

我敢打赌他们正在对无符号短片做 +=。加法的结果被隐式转换为 int,然后需要向下转换回分配的无符号 short。

于 2009-08-29T03:12:24.467 回答