rtt 1.10.3 + gcc 4.5

It gives me

[ 0%] Building CXX object src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o In file included from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServerRegistrator.hpp:41:0,

                 from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/Event.hpp:47,
                 from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/PortInterface.hpp:45,
                 from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowInterface.hpp:45,
                 from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowInterface.cpp:39:
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp: In member function 'RTT::NameServer<_ValueType>::NameType RTT::NameServer<_ValueType>::name_iterator::operator*()': /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp:321:29: error: no match for 'operator*' in '*((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_ValueType>::name_iterator::i' /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator& RTT::NameServer<_ValueType>::name_iterator::operator++()': /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp:333:19: error: no match for 'operator++' in '++((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_ValueType>::name_iterator::i' /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator& RTT::NameServer<_ValueType>::name_iterator::operator--()': /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp:339:19: error: no match for 'operator--' in '--((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_ValueType>::name_iterator::i' make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o] Error 1 make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all] Error 2 make: *** [all] Error 2

I suspect a scope clash or something like that, and i suggest this patch.

AttachmentSize
orocos-rtt-1.10.3-iterator_scope_bug.patch2.92 KB

rtt 1.10.3 + gcc 4.5

On Monday 19 April 2010 10:59:04 paul [dot] chavent [..] ... wrote:
> It gives me
>
> [ 0%] Building CXX object
> src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o In
> file included from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> rRegistrator.hpp:41:0, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/Event.hpp
> :47, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/PortInter
> face.hpp:45, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowI
> nterface.hpp:45, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowI
> nterface.cpp:39:
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp: In member function 'RTT::NameServer<_ValueType>::NameType
> RTT::NameServer<_ValueType>::name_iterator::operator*()':
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp:321:29: error: no match for 'operator*' in
> '*((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_Va
> lueType>::name_iterator::i'
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator&
> RTT::NameServer<_ValueType>::name_iterator::operator++()':
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp:333:19: error: no match for 'operator++' in
> '++((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_V
> alueType>::name_iterator::i'
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator&
> RTT::NameServer<_ValueType>::name_iterator::operator--()':
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp:339:19: error: no match for 'operator--' in
> '--((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_V
> alueType>::name_iterator::i' make[2]: ***
> [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o]
> Error 1 make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all]
> Error 2 make: *** [all] Error 2
>
> I suspect a scope clash or something like that, and i suggest this patch.
>

Could you try the patch in the attachment instead ? It respects API and
probably fixes this too (only tested with gcc 4.4)

Thanks,
Peter

rtt 1.10.3 + gcc 4.5

On Monday 19 April 2010 10:59:04 paul [dot] chavent [..] ... wrote:
> It gives me
>
> [ 0%] Building CXX object
> src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o In
> file included from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> rRegistrator.hpp:41:0, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/Event.hpp
> :47, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/PortInter
> face.hpp:45, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowI
> nterface.hpp:45, from
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowI
> nterface.cpp:39:
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp: In member function 'RTT::NameServer<_ValueType>::NameType
> RTT::NameServer<_ValueType>::name_iterator::operator*()':
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp:321:29: error: no match for 'operator*' in
> '*((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_Va
> lueType>::name_iterator::i'
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator&
> RTT::NameServer<_ValueType>::name_iterator::operator++()':
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp:333:19: error: no match for 'operator++' in
> '++((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_V
> alueType>::name_iterator::i'
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator&
> RTT::NameServer<_ValueType>::name_iterator::operator--()':
> /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServe
> r.hpp:339:19: error: no match for 'operator--' in
> '--((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_V
> alueType>::name_iterator::i' make[2]: ***
> [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o]
> Error 1 make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all]
> Error 2 make: *** [all] Error 2
>
> I suspect a scope clash or something like that, and i suggest this patch.

I can't accept this patch, since it breaks the API of NameServer. The solution
is to fix the DataFlowInterface.cpp file. Thanks for testing with this brand-new
compiler though !

Cheers,
Peter

rtt 1.10.3 + gcc 4.5

It gives me

[ 0%] Building CXX object src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o
In file included from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServerRegistrator.hpp:41:0,
from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/Event.hpp:47,
from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/PortInterface.hpp:45,
from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowInterface.hpp:45,
from /home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/DataFlowInterface.cpp:39:
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp: In member function 'RTT::NameServer<_ValueType>::NameType RTT::NameServer<_ValueType>::name_iterator::operator*()':
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp:321:29: error: no match for 'operator*' in '*((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_ValueType>::name_iterator::i'
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator& RTT::NameServer<_ValueType>::name_iterator::operator++()':
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp:333:19: error: no match for 'operator++' in '++((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_ValueType>::name_iterator::i'
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp: In member function 'RTT::NameServer<_ValueType>::name_iterator& RTT::NameServer<_ValueType>::name_iterator::operator--()':
/home/dera/pchavent/work/pip22/sdk/sources/orocos-rtt-1.10.3/src/NameServer.hpp:339:19: error: no match for 'operator--' in '--((RTT::NameServer<_ValueType>::name_iterator*)this)->RTT::NameServer<_ValueType>::name_iterator::i'
make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/DataFlowInterface.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all] Error 2
make: *** [all] Error 2

I suspect a scope clash or something like that, and i suggest this patch.