Given:

Code:
# include <iostream>

//In a file called ... global_constants.h 
class global_constants1 
{
public :
  static const int dummy         = 5; 
  static const double  dprec_value1  ; 
};
//global_constants.h or global_constants.cpp
const double global_constants1::dprec_value1 = 4.3 ;


//In a file called ... global_constants.h 
namespace global_constants2 
{
  const int    dummy        = 5; 
  double const dprec_value1 = 4.3 ;
}

int main()
{
  std::cout << global_constants2::dummy << std::endl;
  std::cout << global_constants1::dummy << std::endl;

  std::cin.get(); 
}
The code show reflects two alternatives to global constants definition. I'm able to deduce from the standard that constants have internal linkage. That said, I think you'll get internal linkage in both versions and any decent compiler will eliminate unused symbols in translation unit that includes these files. Simply put there's no advantage of one over the other. True or False?