#include <boost/type_traits.hpp>
#include <boost/utility.hpp>
using namespace boost;
struct Serializable{};
struct Derived : Serializable {};
class Serializer
{
public:
template <typename ValueType>
void operator& (const typename enable_if<is_base_of<Serializable, ValueType>, ValueType>::type& value) {
;
}
};
int main() {
Serializer serializer;
Derived tar;
serializer & tar;
return 0;
}
g++4.4.7 を使用していたため、コンパイル エラーが発生しました: error: no match for 'operator&' in 'serializer & tar'</p>
スペシャライゼーションを実現するには?