Boost C++ Libraries: Ticket #11973: Can't work with date_time library https://svn.boost.org/trac10/ticket/11973 <p> 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. </p> <p> Operating system: Windows Server 2008 R2 Standard </p> <p> Here is what i did: b2 link=shared threading=multi variant=release </p> <p> cl /Od /I "D:\tools<br />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 &gt;&gt; error.log </p> <p> In file: error.log io_tutorial.cpp D:\tools<br />boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'type' </p> <blockquote> <p> D:\tools<br />boost_1_60_0\boost\range\mutable_iterator.hpp(43): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::extract_iterator&lt;C&gt;' with [ </p> <blockquote> <p> C=boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\range\has_range_iterator.hpp(27): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::range_mutable_iterator&lt;C&gt;' with [ </p> <blockquote> <p> C=boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\range\has_range_iterator.hpp(27): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::has_type_impl_&lt;T&gt;' with [ </p> <blockquote> <p> T=boost::range_detail::range_mutable_iterator&lt;boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\mpl\eval_if.hpp(41): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::range_detail::has_type&lt;T,fallback_&gt;' with [ </p> <blockquote> <p> T=boost::range_detail::range_mutable_iterator&lt;boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type&gt;, fallback_=boost::mpl::bool_&lt;false&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\range\has_range_iterator.hpp(73): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::eval_if&lt;C,F1,F2&gt;' with [ </p> <blockquote> <p> C=boost::is_const&lt;boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type&gt;, F1=boost::range_detail::has_type&lt;boost::range_detail::range_const_iterator&lt;boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type&gt;,boost::mpl::bool_&lt;false&gt;&gt;, F2=boost::range_detail::has_type&lt;boost::range_detail::range_mutable_iterator&lt;boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type&gt;,boost::mpl::bool_&lt;false&gt;&gt; </p> </blockquote> <p> ] D:\tools<br />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&lt;T&gt;' with [ </p> <blockquote> <p> T=boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\mpl\if.hpp(63): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::has_range_iterator&lt;T&gt;' with [ </p> <blockquote> <p> T=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\mpl\eval_if.hpp(40): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::if_&lt;T1,T2,T3&gt;' with [ </p> <blockquote> <p> T1=boost::has_range_iterator&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;, T2=boost::range_iterator&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;, T3=boost::mpl::identity&lt;void&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\range\iterator_range_core.hpp(451): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::eval_if&lt;C,F1,F2&gt;' with [ </p> <blockquote> <p> C=boost::has_range_iterator&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;, F1=boost::range_iterator&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;, F2=boost::mpl::identity&lt;void&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\mpl\aux_\preprocessed\plain\and.hpp(25): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::iterator_range&lt;IteratorT&gt;::is_compatible_range_&lt;Source&gt;' with [ </p> <blockquote> <p> IteratorT=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type, Source=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\mpl\aux_\preprocessed\plain\and.hpp(55): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::aux::and_impl&lt;C_,T1,T2,T3,T4&gt;' with [ </p> <blockquote> <p> C_=true, T1=boost::iterator_range&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::is_compatible_range_&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;, T2=boost::mpl::true_, T3=boost::mpl::true_, T4=boost::mpl::true_ </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\range\iterator_range_core.hpp(468): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::mpl::and_&lt;T1,T2&gt;' with [ </p> <blockquote> <p> T1=boost::mpl::not_&lt;boost::is_convertible&lt;boost::range_iterator&lt;boost::iterator_range&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;&gt;::type,boost::iterator_range_detail::iterator_range_base&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type,boost::iterators::incrementable_traversal_tag&gt;::iterator&gt;&gt;, T2=boost::iterator_range&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::is_compatible_range_&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\core\enable_if.hpp(41): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::iterator_range&lt;IteratorT&gt;::is_compatible_range&lt;Source&gt;' with [ </p> <blockquote> <p> IteratorT=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type, Source=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\algorithm\string\detail\finder.hpp(68): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::enable_if&lt;Cond,T&gt;' with [ </p> <blockquote> <p> Cond=boost::iterator_range&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::is_compatible_range&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;, T=void </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\algorithm\string\find_format.hpp(272): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'boost::iterator_range&lt;IteratorT&gt; boost::algorithm::detail::first_finderF&lt;SearchIteratorT,PredicateT&gt;::operator ()&lt;boost::range_iterator&lt;C&gt;::type&gt;(ForwardIteratorT,ForwardIteratorT) const' with [ </p> <blockquote> <p> IteratorT=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type, SearchIteratorT=const boost::date_time::date_facet&lt;boost::gregorian::date,char&gt;::char_type *, PredicateT=boost::algorithm::is_equal, C=std::allocator&lt;std::string&gt;::value_type, ForwardIteratorT=boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\algorithm\string\replace.hpp(657): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'void boost::algorithm::find_format_all&lt;SequenceT,boost::algorithm::detail::first_finderF&lt;SearchIteratorT,PredicateT&gt;,boost::algorithm::detail::const_formatF&lt;RangeT&gt;&gt;(SequenceT &amp;,FinderT,FormatterT)' with [ </p> <blockquote> <p> SequenceT=boost::date_time::date_facet&lt;boost::gregorian::date,char&gt;::string_type, SearchIteratorT=const boost::date_time::date_facet&lt;boost::gregorian::date,char&gt;::char_type *, PredicateT=boost::algorithm::is_equal, RangeT=boost::iterator_range&lt;std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;::const_iterator&gt;, FinderT=boost::algorithm::detail::first_finderF&lt;const boost::date_time::date_facet&lt;boost::gregorian::date,char&gt;::char_type *,boost::algorithm::is_equal&gt;, FormatterT=boost::algorithm::detail::const_formatF&lt;boost::iterator_range&lt;std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;::const_iterator&gt;&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\date_time\date_facet.hpp(322): Siehe Verweis auf Instanziierung der kompilierten Funktionsvorlage 'void boost::algorithm::replace_all&lt;boost::date_time::date_facet&lt;date_type,CharT&gt;::string_type,const boost::date_time::date_facet&lt;date_type,CharT&gt;::char_type<a class="changeset" href="https://svn.boost.org/trac10/changeset/3" title="Tweak disclaimer text">[3]</a>,std::allocator&lt;_Ty&gt;::value_type&gt;(SequenceT &amp;,Range1T (&amp;),const Range2T &amp;)' with [ </p> <blockquote> <p> date_type=boost::gregorian::date, CharT=char, _Ty=std::string, SequenceT=boost::date_time::date_facet&lt;boost::gregorian::date,char&gt;::string_type, Range1T=const boost::date_time::date_facet&lt;boost::gregorian::date,char&gt;::char_type <a class="changeset" href="https://svn.boost.org/trac10/changeset/3" title="Tweak disclaimer text">[3]</a>, Range2T=std::allocator&lt;std::string&gt;::value_type </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\date_time\date_facet.hpp(317): Bei der Kompilierung der Memberfunktion 'std::ostreambuf_iterator&lt;_Elem,_Traits&gt; boost::date_time::date_facet&lt;date_type,CharT&gt;::do_put_tm(OutItrT,std::ios_base &amp;,boost::date_time::date_facet&lt;date_type,CharT&gt;::char_type,const tm &amp;,boost::date_time::date_facet&lt;date_type,CharT&gt;::string_type) const' der Klassenvorlage with [ </p> <blockquote> <p> _Elem=char, _Traits=std::char_traits&lt;char&gt;, date_type=boost::gregorian::date, CharT=char, OutItrT=std::ostreambuf_iterator&lt;char,std::char_traits&lt;char&gt;&gt; </p> </blockquote> <p> ] D:\tools<br />boost_1_60_0\boost\date_time\time_facet.hpp(204): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::date_time::date_facet&lt;date_type,CharT&gt;' with [ </p> <blockquote> <p> date_type=boost::gregorian::date, CharT=char </p> </blockquote> <p> ] io_tutorial.cpp(27): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'boost::date_time::time_facet&lt;time_type,CharT&gt;' with [ </p> <blockquote> <p> time_type=boost::local_time::local_date_time, CharT=char </p> </blockquote> <p> ] </p> </blockquote> <p> D:\tools<br />boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C3254: 'boost::range_detail::extract_iterator&lt;C&gt;': Die Klasse enth„lt die explizite šberschreibung '<span class="underline">ctor', wird jedoch von keiner Schnittstelle abgeleitet, die die Funktionsdeklaration enth„lt </span></p> <blockquote> <p> with [ </p> <blockquote> <p> C=boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type </p> </blockquote> <p> ] </p> </blockquote> <p> D:\tools<br />boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2838: '<span class="underline">ctor': Unzul„ssiger vollst„ndig angegebener Name in Elementdeklaration D:\tools<br />boost_1_60_0\boost\range\mutable_iterator.hpp(37) : error C2461: 'boost::range_detail::extract_iterator&lt;C&gt;': Formale Parameterliste fr Konstruktor fehlt </span></p> <blockquote> <p> with [ </p> <blockquote> <p> C=boost::remove_reference&lt;boost::range_iterator&lt;std::allocator&lt;std::string&gt;::value_type&gt;::type&gt;::type </p> </blockquote> <p> ] </p> </blockquote> <p> D:\tools<br />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 </p> <blockquote> <p> D:\tools<br />boost_1_60_0\boost\type.hpp(14): Siehe Deklaration von 'boost::type' </p> </blockquote> <p> D:\tools<br />boost_1_60_0\boost\range\mutable_iterator.hpp(37) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht m”glich; Kompilierung wird abgebrochen. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11973 Trac 1.4.3 anonymous Wed, 10 Feb 2016 12:14:54 GMT <link>https://svn.boost.org/trac10/ticket/11973#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11973#comment:1</guid> <description> <p> 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 </p> </description> <category>Ticket</category> </item> </channel> </rss>