Ovanes,
sorry, I made an error when writing the sample. It
should have been:
template
<typename T>
struct point : boost::additive<point<T>,
T>
{
T x_;
T
y_;
explicit point(T x=0, T y=0) : x_(x),
y_(y)
{ }
point & operator
+= (T offset)
{
x_ +=
offset;
y_ +=
offset;
return *this;
}
point & operator -= (T
offset)
{
x_
-= offset;
y_ -=
offset;
return *this;
}
}
This part is working as it should.
My problem comes as soon as I make member
templates out of the operators, for example like so
...
template <typename U>
point & operator += (U offset)
{
x_ +=
offset;
y_ +=
offset;
return *this;
}
...
How do I write the boost::additive stuff so that it
works with the operator template with all the types U that are
instantiated?
Is that at all possible?
Peter
Peter,
AFAIK
operator += or operator -= signature must contain a return value. In your case
it can probably be void.
template<class U>
void operator+=(U
offset)
{
...
}
...
Best Regards,
Ovanes
On Fri, Apr 25, 2008 at 10:41 AM, Peter <
p.schregle@impuls-imaging.com>
wrote:
Assuming
I have a class like the following:
template <typename
T>
struct point : boost::additive<point<T>,
T>
{
T x_;
T y_;
explicit point(T x=0, T y=0) : x_(x), y_(y)
{
}
operator += (T offset)
{
x_ += offset;
y_ +=
offset;
}
operator -= (T
offset)
{
x_ -=
offset;
y_ -= offset;
}
}
Now I want to change the addition and subtraction
operators to allow for
different types using the following
template
class point ...
template <typename
U>
operator += (U offset)
{
x_ += offset;
y_ +=
offset;
}
template <typename
U>
operator -= (T offset)
{
x_ -= offset;
y_ -=
offset;
}
...
I cannot figure out how to write
the proper syntax for the boost::additive
class, so that it generates the
proper additional operators for all type
combinations. Is that possible,
at all?
Thanks,
Peter
_______________________________________________
Boost-users
mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________
Boost-users mailing
list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users