NOTE: Because people searching with the same keyword will land on this page, I am adding this answer which is not the cause for this compiler error in the above mentioned case.
I was facing this error when I had an enum
declared in some file which had one of the elements having the same symbol as my class name.
e.g. if I declare an enum = {A, B, C}
in some file which is included in another file where I declare an object of class A
.
This was throwing the same compiler error message mentioning that Class A does not name a type
. There was no circular dependency in my case.
So, be careful while naming classes and declaring enums (which might be visible, imported and used externally in other files) in C++.