URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [cpp0x/] [lambda/] [lambda-template4.C] - Rev 693
Compare with Previous | Blame | View Log
// PR c++/51459// { dg-do run { target c++11 } }struct func {virtual ~func() { }virtual void operator()() const = 0;virtual func* clone() const = 0;};template<typename T>struct funcimpl : func {explicit funcimpl(T t) : t(t) { }void operator()() const { t(); }func* clone() const { return new funcimpl(*this); }T t;};struct function{func* p;template<typename T>function(T t) : p(new funcimpl<T>(t)) { }~function() { delete p; }function(const function& f) : p(f.p->clone()) { }function& operator=(const function& ) = delete;void operator()() const { (*p)(); }};template <typename F>function animate(F f) { return [=]{ f(); }; }int main(){function linear1 = []{};function av(animate(linear1));av();}
