Value constructors for C++ structs shouldn't try to initialize static members of the struct.
If a static variable can be evaluated at compile time, create an accessor using that value. This means static variables will always be inlined and removed. Note: currently this only works with numeric types.