URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 305 |
Rev 338 |
// { dg-do assemble }
|
// { dg-do assemble }
|
// GROUPS passed visibility
|
// GROUPS passed visibility
|
// Used to say:
|
// Used to say:
|
// manip.cc:17: member `_f' is a private member of class `B'
|
// manip.cc:17: member `_f' is a private member of class `B'
|
// manip.cc:17: member `_a' is a private member of class `B'
|
// manip.cc:17: member `_a' is a private member of class `B'
|
|
|
class A {};
|
class A {};
|
|
|
template
|
template
|
class B;
|
class B;
|
|
|
template
|
template
|
inline A &
|
inline A &
|
operator<< (A &o, const B &m);
|
operator<< (A &o, const B &m);
|
|
|
template
|
template
|
class B
|
class B
|
{
|
{
|
A &(*_f) (A &, TP);
|
A &(*_f) (A &, TP);
|
TP _a;
|
TP _a;
|
public:
|
public:
|
B (A &(*f) (A &, TP), TP a) : _f (f), _a (a) {}
|
B (A &(*f) (A &, TP), TP a) : _f (f), _a (a) {}
|
friend A &operator<< <>(A &o, const B &m);
|
friend A &operator<< <>(A &o, const B &m);
|
};
|
};
|
|
|
template
|
template
|
inline A &
|
inline A &
|
operator<< (A &o, const B &m)
|
operator<< (A &o, const B &m)
|
{
|
{
|
(*m._f) (o, m._a);
|
(*m._f) (o, m._a);
|
return o;
|
return o;
|
}
|
}
|
|
|
A &setw (A &, int);
|
A &setw (A &, int);
|
B setw (int n)
|
B setw (int n)
|
{
|
{
|
return B (setw, n);
|
return B (setw, n);
|
}
|
}
|
|
|
A x;
|
A x;
|
|
|
void f ()
|
void f ()
|
{
|
{
|
x << setw (2);
|
x << setw (2);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.