My OS hard drive crashed and I had to reinstall my OS on a new drive. Which means I had to reinstall everything else. I have been working on implementing another library into my project (irrlicht). About an hour ago I tried compiling everything again (build from scratch). This is the first several times I have tried building since I reinstalled the OS.

For some reason I can no longer use QLatin1String as a key for the QHash template. This worked fine before. The compiler complains that QLatin1String doesn't have a default constructor (which seems to be true). If this is a problem, then why did it compile fine before? And why is their a hash function for qlatin1string in the documentation? Even if no one can answer these questions, am I supposed to be able to use QLatin1String as a key?

I am using QLatin1String in combination with SEVERAL different classes. Here is an example of some code that worked fine before and hasn't compiled since my reinstall:
@mObjectTables[n] = new QHash<QLatin1String, PersistentAppObject*>();@

Ok... I think I found part of the problem. Since no specific lines are given for the error, I did not know they all dealt with one new class in particular. But the output seems to suggest it has to do with this new class (BaseModInfo which does not have a default constructor). So could this be a bug with visual studio? It is reporting that the issue is with the key... not the value type. Or should I take it for its word? Is the QLatin1String really causing this problem?

Is it a bad idea to inherit from a QHash? The reason I need this is because I need a QHash of a QHash and I read somewhere that this was the only way to do it... Here is the class I need to contain a QHash of a QHash: