テンプレート化されたクラスがあるとします:
template <typename T>
class foo {
void do_someting(T obj) {
// do something generic...
}
};
do_something を特殊化したいが、その中で「通常の」 do_something 関数を呼び出したい:
template<>
void foo<MyObj>::do_something(MyObj obj) {
// do something specific...
// and ALSO do something generic!
}
特殊な関数内で do_something の通常バージョンを参照する方法はありますか? それとも、コードをコピーする必要がありますか?
(この正確な問題が発生しないように foo をリファクタリングできることはわかっていますが、「実際の」foo は頻繁に共有されるコードであるため、実際には変更できません。)