Invalid use of incomplete type class Vertices (with templates)

I think I did everything correctly. I just can't understand whats the problem.
Heres my code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template<typename>
class Vertices;

template<typename T>
class Vertex {
    
    void t() {
        Vertices<int> vtcs;
        vtcs.t();
        //main.cpp:21:13: error: invalid use of incomplete type ‘class 
        //Vertices’
        // vtcs.t();
        //     ^
    }
    
};

template<typename T>
class Vertices {
    public:
    void t() {
    }
};

can someone help me with this? Thanks :).
Last edited on
At the point you try to use the function t() , the compiler needs to know about it.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template<typename T>
class Vertices {
    public:
    void t() {
    }
};

template<typename T>
class Vertex {
    
    void t() {
        Vertices<int> vtcs;
        vtcs.t();
    }
    
};

Thank you for your answer! But is there a way I can predeclare function something like this?
Vertices::void t();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template<typename T>
class Vertex {
public:
	void t();
};


template<typename T>
class Vertices {
public:
	void t() {
	}
};

template<typename T>
void Vertex<T>::t(){
	Vertices<int> vtcs;
	vtcs.t();
}
Topic archived. No new replies allowed.