0

私はブーストを使うのが初めてで、問題があります。プロジェクトにshared_mutex関数が必要です。だから私はやった

#include "boost/thread/shared_mutex.hpp"

そして私のプロジェクトをコンパイルしました。「警告をエラーとして扱う」を含む私のMSVC2005は、警告のためにコンパイルを停止します。

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

レベル 4 の Visual Studio ビルドでは、さまざまな Boost ライブラリがあらゆる種類の警告を生成します。

たとえば、プリコンパイル済みヘッダー ファイルの 1 つには次のものが含まれています。

#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

彼らは unsigned short で += を実行しているに違いありません。加算の結果は int に暗黙的にキャストされ、割り当てのために unsigned short にダウンキャストする必要があります。

于 2009-08-29T03:12:24.467 に答える