class SomeJobClassSpec
{
typedef int TASK;
};
class Base
{
};
template< typename Anc >
class A : public Anc
{
typedef SomeJobClassSpec JOB;
public:
void something()
{
auto lambda = [&](char& x) {
new JOB::TASK(1);
};
}
};
int main()
{
A<Base> a;
a.something();
return 0;
}
Y2xhc3MgU29tZUpvYkNsYXNzU3BlYwp7CiAgICB0eXBlZGVmIGludCBUQVNLOwp9OwoKY2xhc3MgQmFzZQp7Cn07Cgp0ZW1wbGF0ZTwgdHlwZW5hbWUgQW5jID4KY2xhc3MgQSA6IHB1YmxpYyBBbmMKewogIHR5cGVkZWYgU29tZUpvYkNsYXNzU3BlYyBKT0I7CnB1YmxpYzoKICB2b2lkIHNvbWV0aGluZygpCiAgewogICAgYXV0byBsYW1iZGEgPSBbJl0oY2hhciYgeCkgewogICAgICBuZXcgSk9COjpUQVNLKDEpOwogICAgfTsKICB9Cn07CgppbnQgbWFpbigpCnsKICAgIEE8QmFzZT4gYTsKICAgIGEuc29tZXRoaW5nKCk7CiAgICByZXR1cm4gMDsKfQ==