There is a structure TOut containing inner structure TIn:
template <typename T>
struct TOut
{
    struct TIn
    {
            bool b;
    };
    TIn in;
T t;
};
How to correctly pass TIn in as a formal parameter of some method?
class Test
{
public:
    template <typename T>
    static void test ( const TOut<T>::TIn &i) {} //Error
};
int main()
{
TOut <double> o;
Test::test(o.in);
}
The program compiles with the following error:
Error   4   error C2998: 'int test' : cannot be a template definition