Можно ли использовать анонимные классы в С++ в качестве возвращаемых типов?
Я googled, что это может работать:
struct Test {} * fun()
{
}
Но эта часть кода не компилируется, сообщение об ошибке:
новые типы не могут быть определены в обратном типе
На самом деле код не имеет никакого смысла, я просто хочу выяснить, может ли анонимный класс использоваться в качестве возвращаемого типа в С++.
Вот мой код:
#include <typeinfo>
#include <iterator>
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main(int argc, char **argv)
{
int mx = [] () -> struct { int x, y ; } { return { 99, 101 } ; } ().x ;
return 0;
}
Я скомпилирую этот код с помощью g++ xx.cpp -std = С++ 0x, компилятор компилирует:
expected primary-expression before '[' token.