名前のない名前空間の const メンバー変数を、関数が名前付きの名前空間で宣言されているデフォルトの関数パラメーターとして設定する方法を考えていました。これを説明するのは難しいと思います。ここに私がやりたいことの例を示します。
//foo.h
namespace foo
{
void justAFunction(std::string function_string = unnamed_str);
}
//foo.cpp
#include "foo.h"
namespace foo
{
namespace
{
const std::string unnamed_str = "simple string";
}
void justAFunction(std::string function_string)
{
...
}
}
これはリンクしません...
関数定義にデフォルトのパラメータを書くこともできますが、それは私が望んでいることではありません。これを正しくコーディングするためのアドバイスはありますか?