Opened 3 years ago

Last modified 3 years ago

#11973 new Support Requests

Can't work with date_time library

Reported by: markus.zaczek@… Owned by: az_sw_dude
Milestone: To Be Determined Component: date_time
Version: Boost 1.60.0 Severity: Showstopper
Keywords: Cc:

Description

Whenever i instantiate an object of the boost::date_time library i get an error in my application. I'm using VC7.1 compiler. To be sure that i'm not using anything wrong i also tried to compile the shipped tutorial file: "boost_1_60_0\libs\date_time\example\tutorial\io_tutorial.cpp". The error stays the same.

Operating system: Windows Server 2008 R2 Standard

Here is what i did: b2 link=shared threading=multi variant=release

cl /Od /I "D:\tools
boost_1_60_0" /D "WIN32" /D "_DEBUG" /D "_WINDLL" /Gm /EHsc /RTC1 /MDd /GS /GR /Fo"Debug/" /W3 /nologo /c /Wp64 /TP io_tutorial.cpp >> error.log

In file: error.log io_tutorial.cpp D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'type'

D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(43): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::extract_iterator<C>' with [

C=boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type

] D:\tools
boost_1_60_0\boost\range\has_range_iterator.hpp(27): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::range_mutable_iterator<C>' with [

C=boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type

] D:\tools
boost_1_60_0\boost\range\has_range_iterator.hpp(27): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::has_type_impl_<T>' with [

T=boost::range_detail::range_mutable_iterator<boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type>

] D:\tools
boost_1_60_0\boost\mpl\eval_if.hpp(41): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::has_type<T,fallback_>' with [

T=boost::range_detail::range_mutable_iterator<boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type>, fallback_=boost::mpl::bool_<false>

] D:\tools
boost_1_60_0\boost\range\has_range_iterator.hpp(73): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::eval_if<C,F1,F2>' with [

C=boost::is_const<boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type>, F1=boost::range_detail::has_type<boost::range_detail::range_const_iterator<boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type>,boost::mpl::bool_<false>>, F2=boost::range_detail::has_type<boost::range_detail::range_mutable_iterator<boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type>,boost::mpl::bool_<false>>

] D:\tools
boost_1_60_0\boost\range\has_range_iterator.hpp(73): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::has_range_iterator_impl<T>' with [

T=boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type

] D:\tools
boost_1_60_0\boost\mpl\if.hpp(63): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::has_range_iterator<T>' with [

T=boost::range_iterator<std::allocator<std::string>::value_type>::type

] D:\tools
boost_1_60_0\boost\mpl\eval_if.hpp(40): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::if_<T1,T2,T3>' with [

T1=boost::has_range_iterator<boost::range_iterator<std::allocator<std::string>::value_type>::type>, T2=boost::range_iterator<boost::range_iterator<std::allocator<std::string>::value_type>::type>, T3=boost::mpl::identity<void>

] D:\tools
boost_1_60_0\boost\range\iterator_range_core.hpp(451): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::eval_if<C,F1,F2>' with [

C=boost::has_range_iterator<boost::range_iterator<std::allocator<std::string>::value_type>::type>, F1=boost::range_iterator<boost::range_iterator<std::allocator<std::string>::value_type>::type>, F2=boost::mpl::identity<void>

] D:\tools
boost_1_60_0\boost\mpl\aux_\preprocessed\plain\and.hpp(25): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::iterator_range<IteratorT>::is_compatible_range_<Source>' with [

IteratorT=boost::range_iterator<std::allocator<std::string>::value_type>::type, Source=boost::range_iterator<std::allocator<std::string>::value_type>::type

] D:\tools
boost_1_60_0\boost\mpl\aux_\preprocessed\plain\and.hpp(55): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::aux::and_impl<C_,T1,T2,T3,T4>' with [

C_=true, T1=boost::iterator_range<boost::range_iterator<std::allocator<std::string>::value_type>::type>::is_compatible_range_<boost::range_iterator<std::allocator<std::string>::value_type>::type>, T2=boost::mpl::true_, T3=boost::mpl::true_, T4=boost::mpl::true_

] D:\tools
boost_1_60_0\boost\range\iterator_range_core.hpp(468): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::and_<T1,T2>' with [

T1=boost::mpl::not_<boost::is_convertible<boost::range_iterator<boost::iterator_range<boost::range_iterator<std::allocator<std::string>::value_type>::type>>::type,boost::iterator_range_detail::iterator_range_base<boost::range_iterator<std::allocator<std::string>::value_type>::type,boost::iterators::incrementable_traversal_tag>::iterator>>, T2=boost::iterator_range<boost::range_iterator<std::allocator<std::string>::value_type>::type>::is_compatible_range_<boost::range_iterator<std::allocator<std::string>::value_type>::type>

] D:\tools
boost_1_60_0\boost\core\enable_if.hpp(41): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::iterator_range<IteratorT>::is_compatible_range<Source>' with [

IteratorT=boost::range_iterator<std::allocator<std::string>::value_type>::type, Source=boost::range_iterator<std::allocator<std::string>::value_type>::type

] D:\tools
boost_1_60_0\boost\algorithm\string\detail\finder.hpp(68): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::enable_if<Cond,T>' with [

Cond=boost::iterator_range<boost::range_iterator<std::allocator<std::string>::value_type>::type>::is_compatible_range<boost::range_iterator<std::allocator<std::string>::value_type>::type>, T=void

] D:\tools
boost_1_60_0\boost\algorithm\string\find_format.hpp(272): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'boost::iterator_range<IteratorT> boost::algorithm::detail::first_finderF<SearchIteratorT,PredicateT>::operator ()<boost::range_iterator<C>::type>(ForwardIteratorT,ForwardIteratorT) const' with [

IteratorT=boost::range_iterator<std::allocator<std::string>::value_type>::type, SearchIteratorT=const boost::date_time::date_facet<boost::gregorian::date,char>::char_type *, PredicateT=boost::algorithm::is_equal, C=std::allocator<std::string>::value_type, ForwardIteratorT=boost::range_iterator<std::allocator<std::string>::value_type>::type

] D:\tools
boost_1_60_0\boost\algorithm\string\replace.hpp(657): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'void boost::algorithm::find_format_all<SequenceT,boost::algorithm::detail::first_finderF<SearchIteratorT,PredicateT>,boost::algorithm::detail::const_formatF<RangeT>>(SequenceT &,FinderT,FormatterT)' with [

SequenceT=boost::date_time::date_facet<boost::gregorian::date,char>::string_type, SearchIteratorT=const boost::date_time::date_facet<boost::gregorian::date,char>::char_type *, PredicateT=boost::algorithm::is_equal, RangeT=boost::iterator_range<std::basic_string<char,std::char_traits<char>,std::allocator<char>>::const_iterator>, FinderT=boost::algorithm::detail::first_finderF<const boost::date_time::date_facet<boost::gregorian::date,char>::char_type *,boost::algorithm::is_equal>, FormatterT=boost::algorithm::detail::const_formatF<boost::iterator_range<std::basic_string<char,std::char_traits<char>,std::allocator<char>>::const_iterator>>

] D:\tools
boost_1_60_0\boost\date_time\date_facet.hpp(322): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'void boost::algorithm::replace_all<boost::date_time::date_facet<date_type,CharT>::string_type,const boost::date_time::date_facet<date_type,CharT>::char_type[3],std::allocator<_Ty>::value_type>(SequenceT &,Range1T (&),const Range2T &)' with [

date_type=boost::gregorian::date, CharT=char, _Ty=std::string, SequenceT=boost::date_time::date_facet<boost::gregorian::date,char>::string_type, Range1T=const boost::date_time::date_facet<boost::gregorian::date,char>::char_type [3], Range2T=std::allocator<std::string>::value_type

] D:\tools
boost_1_60_0\boost\date_time\date_facet.hpp(317): Bei der Kompilierung der Memberfunktion 'std::ostreambuf_iterator<_Elem,_Traits> boost::date_time::date_facet<date_type,CharT>::do_put_tm(OutItrT,std::ios_base &,boost::date_time::date_facet<date_type,CharT>::char_type,const tm &,boost::date_time::date_facet<date_type,CharT>::string_type) const' der Klassenvorlage with [

_Elem=char, _Traits=std::char_traits<char>, date_type=boost::gregorian::date, CharT=char, OutItrT=std::ostreambuf_iterator<char,std::char_traits<char>>

] D:\tools
boost_1_60_0\boost\date_time\time_facet.hpp(204): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::date_time::date_facet<date_type,CharT>' with [

date_type=boost::gregorian::date, CharT=char

] io_tutorial.cpp(27): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::date_time::time_facet<time_type,CharT>' with [

time_type=boost::local_time::local_date_time, CharT=char

]

D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C3254: 'boost::range_detail::extract_iterator<C>': Die Klasse enth„lt die explizite šberschreibung 'ctor', wird jedoch von keiner Schnittstelle abgeleitet, die die Funktionsdeklaration enth„lt

with [

C=boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type

]

D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2838: 'ctor': Unzul„ssiger vollst„ndig angegebener Name in Elementdeklaration D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2461: 'boost::range_detail::extract_iterator<C>': Formale Parameterliste fr Konstruktor fehlt

with [

C=boost::remove_reference<boost::range_iterator<std::allocator<std::string>::value_type>::type>::type

]

D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2955: 'boost::type': fr die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich

D:\tools
boost_1_60_0\boost\type.hpp(14): Siehe Deklaration von 'boost::type'

D:\tools
boost_1_60_0\boost\range\mutable_iterator.hpp(37) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht m”glich; Kompilierung wird abgebrochen.

Change History (1)

comment:1 Changed 3 years ago by anonymous

Add from Markus Zaczek: If i try to compile it with a newer compiler Version (VC++14 the one shipped with Visual studio 2015) it compiles fine

Note: See TracTickets for help on using tickets.