onsdag 10 augusti 2011

Declaration does not declare anything.

This was new to me.
I had just set up Fedora (virtual machine) to use for linux development on my new computer. I checked out my source code through svn and tried to build it and the above warning shows up. Whats more, its pointing to one of the typedefs I wrote waaay back, and has compiled fine with g++ / msvc 2010 before. In fact, it still compiled well in msvc, the only one having the problem is g++.

The offending line of code was this:

vtx_atomic.h
typedef float F32;

And this in turn caused another problem!
I reference this F32 declaration from many places in my code, but there is one specific location where I use F32 as a template argument for a class, and thats where it freaked out.
The code looks like the following:

vtx_vbuffer.h
struct VertexPosNormTex
{
    core::Vector3 position;
    core::Vector3 normal;
    core::Vector2<platform::F32> texCoord;
};

It resulted in the error:
../include/vortex/vtx_vbuffer.h:11:31: error: template argument 1 is invalid

I renamed the typedef and all warnings and errors went away. Is F32 conflicting with something? If it is, how come it didn't do that earlier?


Inga kommentarer:

Skicka en kommentar