monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] The new macro M is no good...


From: Richard Levitte - VMS Whacker
Subject: [Monotone-devel] The new macro M is no good...
Date: Sun, 24 Jul 2005 21:08:55 +0200 (CEST)

Hi,

The new macro for the new musing feature, M, clashes with boost in
Debian [unstable] big time:

if g++ -DLOCALEDIR=\"/usr/local/share/locale\" -DHAVE_CONFIG_H -I. -I. -I.     
-DNDEBUG -DBOOST_DISABLE_THREADS -Wall  -O2 -fno-strict-aliasing -MT 
unix/process.o -MD -MP -MF "unix/.deps/process.Tpo" \
  -c -o unix/process.o `test -f 'unix/process.cc' || echo './'`unix/process.cc; 
\
then mv -f "unix/.deps/process.Tpo" "unix/.deps/process.Po"; \
else rm -f "unix/.deps/process.Tpo"; exit 1; \
fi
In file included from /usr/include/boost/algorithm/string/find_format.hpp:21,
                 from /usr/include/boost/algorithm/string/replace.hpp:21,
                 from /usr/include/boost/date_time/date_facet.hpp:13,
                 from 
/usr/include/boost/date_time/gregorian/gregorian_io.hpp:12,
                 from /usr/include/boost/date_time/gregorian/conversion.hpp:23,
                 from /usr/include/boost/date_time/gregorian/gregorian.hpp:21,
                 from 
/usr/include/boost/date_time/posix_time/time_formatters.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time.hpp:24,
                 from ./cert.hh:15,
                 from ./vocab.hh:149,
                 from ./platform.hh:14,
                 from unix/process.cc:15:
/usr/include/boost/algorithm/string/detail/find_format.hpp:70:67: error: macro 
"M" passed 3 arguments, but takes just 1
/usr/include/boost/algorithm/string/detail/find_format.hpp:131:67: error: macro 
"M" passed 3 arguments, but takes just 1
/usr/include/boost/algorithm/string/detail/find_format.hpp:191:67: error: macro 
"M" passed 3 arguments, but takes just 1
In file included from /usr/include/boost/algorithm/string/find_format.hpp:22,
                 from /usr/include/boost/algorithm/string/replace.hpp:21,
                 from /usr/include/boost/date_time/date_facet.hpp:13,
                 from 
/usr/include/boost/date_time/gregorian/gregorian_io.hpp:12,
                 from /usr/include/boost/date_time/gregorian/conversion.hpp:23,
                 from /usr/include/boost/date_time/gregorian/gregorian.hpp:21,
                 from 
/usr/include/boost/date_time/posix_time/time_formatters.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time.hpp:24,
                 from ./cert.hh:15,
                 from ./vocab.hh:149,
                 from ./platform.hh:14,
                 from unix/process.cc:15:
/usr/include/boost/algorithm/string/detail/find_format_all.hpp:72:67: error: 
macro "M" passed 3 arguments, but takes just 1
/usr/include/boost/algorithm/string/detail/find_format_all.hpp:139:67: error: 
macro "M" passed 3 arguments, but takes just 1
/usr/include/boost/algorithm/string/detail/find_format_all.hpp:208:67: error: 
macro "M" passed 3 arguments, but takes just 1
In file included from /usr/include/boost/algorithm/string/finder.hpp:22,
                 from /usr/include/boost/algorithm/string/replace.hpp:22,
                 from /usr/include/boost/date_time/date_facet.hpp:13,
                 from 
/usr/include/boost/date_time/gregorian/gregorian_io.hpp:12,
                 from /usr/include/boost/date_time/gregorian/conversion.hpp:23,
                 from /usr/include/boost/date_time/gregorian/gregorian.hpp:21,
                 from 
/usr/include/boost/date_time/posix_time/time_formatters.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time.hpp:24,
                 from ./cert.hh:15,
                 from ./vocab.hh:149,
                 from ./platform.hh:14,
                 from unix/process.cc:15:
/usr/include/boost/algorithm/string/detail/finder.hpp:252:49: error: macro "M" 
passed 2 arguments, but takes just 1
[...]

The reason is this, found in find_format.hpp, among others:

namespace boost {
    namespace algorithm {
        namespace detail {

// find_format_copy (iterator variant) implementation 
-------------------------------//

[...]
            template< 
                typename OutputIteratorT,
                typename InputT,
                typename FinderT,
                typename FormatterT,
                typename FindResultT,
                typename FormatResultT >
            inline OutputIteratorT find_format_copy_impl2(
                OutputIteratorT Output,
                const InputT& Input,
                FinderT Finder,
                FormatterT Formatter,
                const FindResultT& FindResult,
                const FormatResultT& FormatResult )
            {       
                typedef find_format_store<
                    BOOST_STRING_TYPENAME 
                        range_const_iterator<InputT>::type, 
                        FormatterT,
                        FormatResultT > store_type;

                // Create store for the find result
                store_type M( FindResult, FormatResult, Formatter );

                if ( !M )
                {
                    // Match not found - return original sequence
                    std::copy( begin(Input), end(Input), Output );
                    return Output;
                }

                // Copy the beginning of the sequence
                std::copy( begin(Input), begin(M), Output );
                // Format find result
                // Copy formated result
                std::copy( begin(M.format_result()), end(M.format_result()), 
Output );
                // Copy the rest of the sequence
                std::copy( M.end(), end(Input), Output );

                return Output;
            }
[...]

See the store type, named M?  I think *kaboom* is an appropriate
experssion here :-).

Oh, yeah:

: ; for x in /var/lib/dpkg/info/libboost*-dev.list; do apt-show-versions 
`basename $x .list`; done
libboost-date-time-dev/unstable uptodate 1.32.0+1.33.0-cvs20050720-3
libboost-dev/unstable uptodate 1.32.0+1.33.0-cvs20050720-3
libboost-filesystem-dev/unstable uptodate 1.32.0+1.33.0-cvs20050720-3
libboost-regex-dev/unstable uptodate 1.32.0+1.33.0-cvs20050720-3
libboost-test-dev/unstable uptodate 1.32.0+1.33.0-cvs20050720-3

I've no idea if that M is a permanent thing in boost or if there will
be something else in the end.

Cheers,
Richard

-----
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte                         address@hidden
                                        http://richard.levitte.org/

"When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up."
                                                -- C.S. Lewis




reply via email to

[Prev in Thread] Current Thread [Next in Thread]