Вопрос

Я новичок в использовании 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 нужна функция microseconds (я читал, что библиотеки boost имеют довольно большой список зависимостей), но я не могу скомпилировать свой проект.Я немного погуглил, нашел ту же проблему, но решения нет.

Обновить:Сейчас я компилирую boost, но я хочу поместить все исходные тексты в мой проект с открытым исходным кодом, включая boost.thread.shared_mutex.

Это было полезно?

Решение

Держу пари, они ставят += на короткометражке без знака.Результат сложения неявно преобразуется в int, затем его необходимо преобразовать обратно в беззнаковое сокращение для присваивания.

Другие советы

Различные библиотеки Boost генерируют всевозможные предупреждения при сборках Visual Studio на уровне 4.Мы просто отключаем их.

Например, один из наших предварительно скомпилированных заголовочных файлов содержит:

#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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top