2009年8月4日火曜日

template 特殊化とリンク


// hoge.hpp

template <class T>
void hoge( T fuga ) {
...
}
template <>
void hole( int fuga ) {
...
}

というようなコードを複数モジュールからコンパイルして、リンクをかけるとVC8で LNK2005 とエラーになってしまった。えーーーっと・・・

// hoge.hpp

template <class T>
void hoge( T fuga ) {
...
}
template <>
void hole( int fuga );



// hoge.cpp

template <>
void hole( int fuga ) {
...
}


と分離しないといけない。うーん・・・しょうがないのか・・・

0 件のコメント: