[boost-users] msvc operator error.
k lets say i have the following snippet of code
typedef boost::operators<T> operatorsT;
template <class T>
void myFunc(const T&)
{
typedef boost::operators<T> operatorT;
BOOST_STATIC_ASSERT((is_base_of
chun ping wang wrote:
k lets say i have the following snippet of code
typedef boost::operators<T> operatorsT;
Um, what's the intent of this line? Is there a definition of a specific type T somewhere in scope? Given that myFunc() contains a similar typedef, could this outer one be removed? This set of questions may be a total red herring, but even if the outer typdef doesn't confuse MSVC, it confuses me.
template <class T> void myFunc(const T&) { typedef boost::operators<T> operatorT; BOOST_STATIC_ASSERT((is_base_of
::value)); // bunch of code after... } on my compiler it generates this error. [snip]
sorry, that should have been deleted.. the real code is this..
template <class T> void myFunc(const T&) { typedef boost::operators<T> operatorT; BOOST_STATIC_ASSERT((is_base
_of
::value)); // bunch of code after... }
On 9/21/07, Nat Goodspeed
chun ping wang wrote:
k lets say i have the following snippet of code
typedef boost::operators<T> operatorsT;
Um, what's the intent of this line? Is there a definition of a specific type T somewhere in scope? Given that myFunc() contains a similar typedef, could this outer one be removed? This set of questions may be a total red herring, but even if the outer typdef doesn't confuse MSVC, it confuses me.
template <class T> void myFunc(const T&) { typedef boost::operators<T> operatorT; BOOST_STATIC_ASSERT((is_base_of
::value)); // bunch of code after... } on my compiler it generates this error. [snip]
Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
the problem occurs if i pass a primtive type into T. If i actually have
class X : boost::operators<X>
{
// ...
};
and than using X as a template parameter it works.
However it doesn't seem to accept primitive type because of the following
reasons...
error C2803: 'operator --' must have at least one formal parameter of class
type
On 9/21/07, chun ping wang
sorry, that should have been deleted.. the real code is this..
template <class T> void myFunc(const T&) { typedef boost::operators<T> operatorT; BOOST_STATIC_ASSERT((is_base
_of
::value)); // bunch of code after... }
On 9/21/07, Nat Goodspeed
wrote: chun ping wang wrote:
k lets say i have the following snippet of code
typedef boost::operators<T> operatorsT;
Um, what's the intent of this line? Is there a definition of a specific type T somewhere in scope? Given that myFunc() contains a similar typedef, could this outer one be removed? This set of questions may be a total red herring, but even if the outer typdef doesn't confuse MSVC, it confuses me.
template <class T> void myFunc(const T&) { typedef boost::operators<T> operatorT; BOOST_STATIC_ASSERT((is_base_of
::value)); // bunch of code after... } on my compiler it generates this error. [snip]
Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
on Mon Sep 24 2007, "chun ping wang"
the problem occurs if i pass a primtive type into T. If i actually have
class X : boost::operators<X> { // ... };
and than using X as a template parameter it works.
However it doesn't seem to accept primitive type because of the following reasons... error C2803: 'operator --' must have at least one formal parameter of class type
operators is not supposed to be used that way. The only right way to use operators<X> is to have X be a class derived from operators<X>. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com
participants (3)
-
chun ping wang
-
David Abrahams
-
Nat Goodspeed