Hello,
I am not certain what I am doing wrong, but when I am initializing global constant floats, the compiler doesn't seem to initialize them to my values. I created a simple class to do some tests (below) and I commented the failures. Any help would be appreciated.
I am using CCS 5.3.0.00090.
StaticTest.h Header:
class StaticTest {
public:
StaticTest();
virtual ~StaticTest();
float DoMath();
private:
static const float TestFloat;
static const int TestInt;
static const double TestDouble;
};
StaticTest.cpp Source:
#include "StaticTest.h"
const float StaticTest::TestFloat = 0.5f;
const int StaticTest::TestInt = 5;
const double StaticTest::TestDouble = 0.5;
const float TestFloat2 = 0.5f;
const double TestDouble2 = 0.7;
const float TestFloat4[2] = { 0.5f, 0.6f };
StaticTest::StaticTest(){}
StaticTest::~StaticTest(){}
float StaticTest::DoMath()
{
float Float1 = 2.0f; //OK
float Float2 = TestFloat; //FAILS
float Float3 = Float1 / TestFloat; //FAILS
float Float4 = Float1 / Float2; //FAILS
int Int1 = TestInt; //OK
double Double1 = TestDouble; //FAILS
float Float5 = TestFloat2; //FAILS
double Double2 = TestDouble2; //FAILS
const float TestFloat3 = 0.5f;
const double TestDouble3 = 0.7;
float Float6 = TestFloat3; //OK
double Double3 = TestDouble3; //OK
float Float7 = TestFloat4[0]; //OK!
float Float8 = TestFloat4[1]; //OK!
return TestFloat;
}
main.cpp source:
#include "StaticTest.h"
StaticTest TestClass;
int main()
{
TestClass.DoMath();
return 0;
}