Тёмная тема
После того как поменял boost с 1.50 на 1.51 компилятор, стал выдавать следующее:
1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2039: get_id: не является членом "boost::this_thread" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2027: использование неопределенного типа "boost::thread::id" 1> D:\GameDev\dep\include\boost/thread/detail/thread.hpp(337): см. объявление "boost::thread::id" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2027: использование неопределенного типа "boost::thread::id" 1> D:\GameDev\dep\include\boost/thread/detail/thread.hpp(337): см. объявление "boost::thread::id" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::shared_ptr<X> &,const boost::shared_ptr<U> &): не удалось вывести аргумент шаблон для "const boost::shared_ptr<X> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/smart_ptr/shared_ptr.hpp(484): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(T *,const boost::intrusive_ptr<U> &): не удалось вывести аргумент шаблон для "T *" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/smart_ptr/intrusive_ptr.hpp(200): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::intrusive_ptr<T> &,U *): не удалось вывести аргумент шаблон для "const boost::intrusive_ptr<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/smart_ptr/intrusive_ptr.hpp(190): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::intrusive_ptr<T> &,const boost::intrusive_ptr<U> &): не удалось вывести аргумент шаблон для "const boost::intrusive_ptr<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/smart_ptr/intrusive_ptr.hpp(180): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::arg<I> &,const boost::arg<I> &): не удалось вывести аргумент шаблон для "const boost::arg<I> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/bind/arg.hpp(41): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: boost::detail::enable_if_interoperable<Derived1,Derived2,mpl::apply2<boost::detail::always_bool2,Derived1,Derived2>::type>::type boost::operator ==(const boost::iterator_facade<Derived1,V1,TC1,Reference1,Difference1> &,const boost::iterator_facade<Derived2,V2,TC2,Reference2,Difference2> &): не удалось вывести аргумент шаблон для "const boost::iterator_facade<Derived1,V1,TC1,Reference1,Difference1> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/iterator/iterator_facade.hpp(482): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(boost::none_t,const boost::optional<T> &): не удалось вывести аргумент шаблон для "const boost::optional<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/optional/optional.hpp(893): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::optional<T> &,boost::none_t): не удалось вывести аргумент шаблон для "const boost::optional<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/optional/optional.hpp(859): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const T &,const boost::optional<T> &): не удалось вывести аргумент шаблон для "const boost::optional<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/optional/optional.hpp(824): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::optional<T> &,const T &): не удалось вывести аргумент шаблон для "const boost::optional<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/optional/optional.hpp(790): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2784: bool boost::operator ==(const boost::optional<T> &,const boost::optional<T> &): не удалось вывести аргумент шаблон для "const boost::optional<T> &" из "boost::thread::id" 1> D:\GameDev\dep\include\boost/optional/optional.hpp(756): см. объявление "boost::operator ==" 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C3767: ==: функции-кандидаты недоступны 1> может быть дружественная функция в "D:\GameDev\dep\include\boost/operators.hpp(151)": "==" [может быть найдена при поиске с зависимостью от аргументов] 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(371): error C2676: бинарный "==": "boost::thread::id" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(546): error C2059: синтаксическая ошибка: ) 1>D:\GameDev\dep\include\boost/thread/detail/thread.hpp(551): error C2059: синтаксическая ошибка: ) 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(145): error C2039: system_time: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(416): error C2039: system_time: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(89): error C2039: throw_exception: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(96): error C2039: throw_exception: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(158): error C2039: throw_exception: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(158): error C2039: lock_error: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(166): error C2039: throw_exception: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(166): error C2039: lock_error: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(258): error C2039: throw_exception: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(258): error C2039: lock_error: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(266): error C2039: throw_exception: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(266): error C2039: lock_error: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/chrono/detail/is_evenly_divisible_by.hpp(24): error C3083: ratio_detail: символ слева от "::" должен представлять тип 1> D:\GameDev\dep\include\boost/mpl/aux_/preprocessed/plain/and.hpp(51): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::chrono::chrono_detail::is_evenly_divisible_by<R1,R2>" 1> with 1> [ 1> R1=boost::ratio<0x01,0x0989680>, 1> R2=boost::ratio<0x01,0x0989680> 1> ] 1> D:\GameDev\dep\include\boost/mpl/aux_/preprocessed/plain/or.hpp(25): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::mpl::and_<T1,T2,T3,T4,T5>" 1> with 1> [ 1> T1=boost::chrono::chrono_detail::is_evenly_divisible_by<boost::ratio<0x01,0x0989680>,boost::ratio<0x01,0x0989680>>, 1> T2=boost::mpl::not_<boost::chrono::treat_as_floating_point<__int64>>, 1> T3=boost::mpl::true_, 1> T4=boost::mpl::true_, 1> T5=boost::mpl::true_ 1> ] 1> D:\GameDev\dep\include\boost/mpl/aux_/preprocessed/plain/or.hpp(55): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::mpl::aux::or_impl<C_,T1,T2,T3,T4>" 1> with 1> [ 1> C_=false, 1> T1=boost::mpl::and_<boost::chrono::chrono_detail::is_evenly_divisible_by<boost::ratio<0x01,0x0989680>,boost::ratio<0x01,0x0989680>>,boost::mpl::not_<boost::chrono::treat_as_floating_point<__int64>>,boost::mpl::true_,boost::mpl::true_,boost::mpl::true_>, 1> T2=boost::mpl::false_, 1> T3=boost::mpl::false_, 1> T4=boost::mpl::false_ 1> ] 1> D:\GameDev\dep\include\boost/utility/enable_if.hpp(36): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::mpl::or_<T1,T2,T3,T4,T5>" 1> with 1> [ 1> T1=boost::chrono::treat_as_floating_point<__int64>, 1> T2=boost::mpl::and_<boost::chrono::chrono_detail::is_evenly_divisible_by<boost::ratio<0x01,0x0989680>,boost::ratio<0x01,0x0989680>>,boost::mpl::not_<boost::chrono::treat_as_floating_point<__int64>>,boost::mpl::true_,boost::mpl::true_,boost::mpl::true_>, 1> T3=boost::mpl::false_, 1> T4=boost::mpl::false_, 1> T5=boost::mpl::false_ 1> ] 1> D:\GameDev\dep\include\boost/type_traits/is_convertible.hpp(443): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::enable_if<Cond,T>" 1> with 1> [ 1> Cond=boost::mpl::or_<boost::chrono::treat_as_floating_point<__int64>,boost::mpl::and_<boost::chrono::chrono_detail::is_evenly_divisible_by<boost::ratio<0x01,0x0989680>,boost::ratio<0x01,0x0989680>>,boost::mpl::not_<boost::chrono::treat_as_floating_point<__int64>>,boost::mpl::true_,boost::mpl::true_,boost::mpl::true_>,boost::mpl::false_,boost::mpl::false_,boost::mpl::false_>, 1> T=void 1> ] 1> D:\GameDev\dep\include\boost/utility/enable_if.hpp(36): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::is_convertible<From,To>" 1> with 1> [ 1> From=boost::chrono::system_clock::duration, 1> To=boost::chrono::duration<int_least64_t,boost::ratio<0x01,0x0989680>> 1> ] 1> D:\GameDev\dep\include\boost/thread/win32/shared_mutex.hpp(283): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::enable_if<Cond,T>" 1> with 1> [ 1> Cond=boost::is_convertible<boost::chrono::system_clock::duration,boost::chrono::duration<int_least64_t,boost::ratio<0x01,0x0989680>>>, 1> T=void 1> ] 1>D:\GameDev\dep\include\boost/chrono/detail/is_evenly_divisible_by.hpp(24): error C2039: is_evenly_divisible_by: не является членом "boost::boost" 1>D:\GameDev\dep\include\boost/chrono/detail/is_evenly_divisible_by.hpp(24): error C2955: boost::chrono::chrono_detail::is_evenly_divisible_by: для использования класса шаблон требуется список аргументов шаблон 1> D:\GameDev\dep\include\boost/chrono/detail/is_evenly_divisible_by.hpp(24): см. объявление "boost::chrono::chrono_detail::is_evenly_divisible_by" 1>D:\GameDev\dep\include\boost/chrono/detail/is_evenly_divisible_by.hpp(24): error C2143: синтаксическая ошибка: отсутствие "," перед "<" 1>D:\GameDev\dep\include\boost/mpl/aux_/preprocessed/plain/and.hpp(55): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
Я проверил - в 1.50 студия тоже ни определение ни объявление, например, get_id() не смогла, но при этом всё отлично работает, а тут - @*!#. До этого на ...-1.47-1.48-1.49-1.50 ни каких проблем с переходом не было.
Кто может подсказать - в чём проблема?
РЕШЕНИЕ: проблема была в том, что в этот раз я закачивал буст не архивом с boost.org, а с репозитория сливал. Взял с архива - и сё заработало.
Тема в архиве.
Тема закрыта.