Можно ли использовать анонимный класс в качестве возвращаемых типов в C ++?
Есть ли способ использовать анонимные классы в C ++ в качестве возвращаемых типов?
Я гуглил, что это может сработать:
struct Test {} * fun()
{
}
Но этот кусок кода не компилируется, сообщение об ошибке:
новые типы не могут быть определены в возвращаемом типе
На самом деле код не имеет никакого смысла, я просто хочу выяснить, может ли анонимный класс использоваться в качестве возвращаемого типа в C ++.
Вот мой код:
#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 = c ++ 0x, компилятор компенсирует:
expected primary-expression before '[' token.