[xsde-users] find() in sequences
Duncan.Perrett at elekta.com
Duncan.Perrett at elekta.com
Tue Oct 6 10:37:21 EDT 2009
Hello,
My xsde project has produced classes like
class myClassA
{
-- --
typedef ::xsde::cxx::hybrid::var_sequence< ::TxMessageType >
TxMessage_sequence;
typedef TxMessage_sequence::iterator TxMessage_iterator;
typedef TxMessage_sequence::const_iterator TxMessage_const_iterator;
}
class TxMessageType
{
- -
const ::std::string&
Name () const;
::std::string&
Name ();
void
Name (const ::std::string&);
}
And I want to search the TxMessage sequence container for a particular
string returned by Name().
NodeType::TxMessage_iterator msgPosn =
find_if(nodeForMsg->TxMessage().begin(), nodeForMsg->TxMessage().end(),
not1(bind2nd(ptr_fun(strcmp),"ADC1_data_dia")));
This doesn't compile and I'm not sure why.
make all
Building file: ../driver.cxx
Invoking: GCC C++ Compiler
g++ -I/usr/xsde/xsde-3.1.0-i686-linux-gnu/libxsde -O0 -g3 -Wall -c
-fmessage-length=0 -MMD -MP -MF"driver.d" -MT"driver.d" -o"driver.o"
"../driver.cxx"
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_iterator_base_types.h:
In instantiation of
‘std::iterator_traits<xsde::cxx::hybrid::var_iterator<TxMessageType> >’:
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:338:
instantiated from ‘_InputIterator std::find_if(_InputIterator,
_InputIterator, _Predicate) [with _InputIterator =
xsde::cxx::hybrid::var_iterator<TxMessageType>, _Predicate =
std::unary_negate<std::binder2nd<std::pointer_to_binary_function<const
char*, const char*, int> > >]’
../driver.cxx:81: instantiated from here
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_iterator_base_types.h:129:
error: no type named ‘iterator_category’ in ‘class
xsde::cxx::hybrid::var_iterator<TxMessageType>’
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:
In function ‘_InputIterator std::find_if(_InputIterator, _InputIterator,
_Predicate) [with _InputIterator =
xsde::cxx::hybrid::var_iterator<TxMessageType>, _Predicate =
std::unary_negate<std::binder2nd<std::pointer_to_binary_function<const
char*, const char*, int> > >]’:
../driver.cxx:81: instantiated from here
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:338:
error: no matching function for call to
‘__iterator_category(xsde::cxx::hybrid::var_iterator<TxMessageType>&)’
make: *** [driver.o] Error 1
Any ideas?
Regards,
Duncan
More information about the xsde-users
mailing list