I asked this question earlier where a solution was presented. The solution is great as far as the question is concerned, but now I am confused on how I would define the methods
From the looks of it, you want to do something along the lines of this:
template ::value>::type >
struct Foo;
template
struct Foo {
Foo();
};
template
Foo::Foo() {
}
This sneakily takes advantage of the default argument in a few places: don't get confused, there is an implicit void
sitting in several locations.