Boost logo

Boost Users :

From: nagual (nagual_at_[hidden])
Date: 2003-09-11 00:48:43


Hello, All!

I write example code for tuples::tuple::get use tuples::tie.
If compile icl (Intel C++) v 7.1 or bcc32 (Borland) v 5.6.4 all ok,
but if compile g++ (GCC) v 3.2.2 or cl (MSVC) v 13.00.9466 - i have eror.
;-c
I need to use it in MSVC.
Help me!

========tie.cpp========
#include <iostream>
#include <boost/tuple/tuple.hpp>

using std::cout;
using std::endl;

template <int num, typename T>
void print(T t) {
  int i1 = 0, i2 = 0, i3 = 0;
  char c1 = '\0', c2 = '\0', c3 = '\0';
  using boost::tuples::tie;
  tie(i1, i2, i3, c1, c2, c3).get<num>() = t; //Error
in g++ & cl
  cout<<tie(i1, i2, i3, c1, c2, c3).get<num>()<<endl; //Error in g++ & cl
}

int main() {
  print<0>(0);
  print<1>(1);
  print<2>(2);
  print<3>('a');
  print<4>('b');
  print<5>('c');
  return 0;
}
========tie.cpp========
========g++ command line======
c:\g++ -Iboost -otie tie.cpp
========g++ command line======
========g++ output======
tie.cpp: In function `void print(T)':
tie.cpp:12: parse error before `)' token
tie.cpp:13: parse error before `)' token
========g++ output======

========cl command line======
c:\cl /EHsc tie.cpp
========cl command line======
========cl output======
tie.cpp(12) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
        tie.cpp(17) : see reference to function template instantiation 'void
print<0,int>(T)' being compiled
        with
        [
            T=int
        ]
tie.cpp(12) : error C2059: syntax error : ')'
tie.cpp(13) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
tie.cpp(13) : error C2059: syntax error : ')'
tie.cpp(12) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
        tie.cpp(18) : see reference to function template instantiation 'void
print<1,int>(T)' being compiled
        with
        [
            T=int
        ]
tie.cpp(12) : error C2059: syntax error : ')'
tie.cpp(13) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
tie.cpp(13) : error C2059: syntax error : ')'
tie.cpp(12) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
        tie.cpp(19) : see reference to function template instantiation 'void
print<2,int>(T)' being compiled
        with
        [
            T=int
        ]
tie.cpp(12) : error C2059: syntax error : ')'
tie.cpp(13) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
tie.cpp(13) : error C2059: syntax error : ')'
tie.cpp(12) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
        tie.cpp(20) : see reference to function template instantiation 'void
print<3,char>(T)' being compiled
        with
        [
            T=char
        ]
tie.cpp(12) : error C2059: syntax error : ')'
tie.cpp(13) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
tie.cpp(13) : error C2059: syntax error : ')'
tie.cpp(12) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
        tie.cpp(21) : see reference to function template instantiation 'void
print<4,char>(T)' being compiled
        with
        [
            T=char
        ]
tie.cpp(12) : error C2059: syntax error : ')'
tie.cpp(13) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
tie.cpp(13) : error C2059: syntax error : ')'
tie.cpp(12) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
        tie.cpp(22) : see reference to function template instantiation 'void
print<5,char>(T)' being compiled
        with
        [
            T=char
        ]
tie.cpp(12) : error C2059: syntax error : ')'
tie.cpp(13) : error C2039: 'get' : is not a member of
'boost::tuples::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>'
        with
        [
            T1=boost::tuples::detail::assign_to_pointee<int>,
            T2=boost::tuples::detail::assign_to_pointee<int>,
            T3=boost::tuples::detail::assign_to_pointee<int>,
            T4=boost::tuples::detail::assign_to_pointee<char>,
            T5=boost::tuples::detail::assign_to_pointee<char>,
            T6=boost::tuples::detail::assign_to_pointee<char>,
            T7=boost::tuples::null_type,
            T8=boost::tuples::null_type,
            T9=boost::tuples::null_type,
            T10=boost::tuples::null_type
        ]
tie.cpp(13) : error C2059: syntax error : ')'
========cl output======

With best regards, nagual. E-mail: nagual_at_[hidden]


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net