08/01/31 21:04:50
URLリンク(gcc.gnu.org)
g++の変更の論拠がここに書いてあるな。標準の7.1.1-1を見ると確かにエラーが正しいように見える
回避策は、
1. 単に32行目のstaticを削除する
これでg++-4.3ではちゃんとstatic扱いになるはずだけど、g++-4.2だとそうならないので複数定義エラーになる
2. lexical_cast自体を非staticにする
別にこれをstaticにする理由はないと思うので、20行目と32行目のstaticを削る
この場合、特殊化をヘッダに置いたままにしておくと複数定義になってまずいので、
ヘッダには宣言だけにして定義をparam.cppに移すか、あるいは単にinlineを付けるのでもいい
3. lexical_castを削除する
grepしてみたら使われてないようなので