• unknown's avatar
    Microsoft VC++ won't compile class C { static const int I=1; }. · ca37e1c3
    unknown authored
    Putting initialization into .cc will reduce compiler's abilities
    to optimize this constant away.
    Defines are not OK as they bloat global namespace.
    Looking for a way to declare an efficient named constant in reduced
    namespace (i. e. in  a class).
    Let's try enums: normally they should be implicitly casted to int.
    Let's see if we really have a compiler which won't do that.
    
    
    
    
    libmysqld/lib_sql.cc:
      Added explicit cast to int for Protocol::{SEND_DEFAULTS,SEND_NUM_ROWS,
      SEND_EOF}
      flags argument of send_fields() is now int.
    sql/protocol.cc:
      flags argument of send_fields is now int.
    sql/protocol.h:
      Catch22: Microsoft VC++ won't compile 
      class C { static const int I=1; }.
      Putting initialization into .cc will reduce compiler's abilities
      to optimize this constant away.
      Defines are not OK as they bloat global namespace.
      Looking for a way to declare an efficient named constant in reduced
      namespace (i. e. in  a class).
      Let's try enums: normally they should be implicitly casted to int.
      Let's see if we really have a compiler which won't do that.
    sql/protocol_cursor.cc:
      flags are now int.
    ca37e1c3
lib_sql.cc 18.9 KB