Facepalming moment

Just a little rant here at my own stupidity. Spent hours chasing after this compiler error:

1>C:\Program Files\Unreal Engine\4.7\Engine\Source\Runtime\Engine\Classes\Matinee/MatineeAnimInterface.h(14): error C2143: syntax error : missing ';' before '<class-head>'
1>C:\Program Files\Unreal Engine\4.7\Engine\Source\Runtime\Engine\Classes\Matinee/MatineeAnimInterface.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

Certainly strange because that header file is part of the engine and unedited. Since I just updated the engine from 4.7.2 to 4.7.3, I thought something may have corrupted there. Verified the engine multiple times, no luck. Regenerated Visual Studio solution files, cleaned, rebuilt, created a new C++ project to test (again) whether my 4.7.3 update maybe corrupted things. New C++ project compiled perfectly.

Googled the error, found that its usually a missing semicolon ; in a the previous file considered by the compiler. Like after a struct declaration. Checked all the header files that were checked out in Perforce for missing semicolons at the end. Played some matches of Dota, one win one loss. Finally found the issue:


It’s been a while since I’ve facepalmed so badly. :smiley:

The key step in your workflow was your Dota process.

I’ve had moments like that. I spent 2 days trying to figure out why my code stopped compiling after I added a 29th class to the project. Turns out, I was including an old duplicate header file which was getting pulled in by UBT.

No doubt about that. :smiley:

Fortunately its been a long while since I’ve been stuck on something silly like that. We’re getting better. :slight_smile:

Please where is the solution?
I cannot compile my project. I checked the syntax 100 times.

found it. if the helps anyone. I know this type of error is hard to find.
For me was that I had a delegate with the same name as another delegate. In other class totally unrelated to the class giving the error.
Changing the name of the delegate, and the error is gone.