template <class Solution =
solution<
state<set<size-1>::value,
set<2*size-2>::value,
set<2*size-2>::value>,
item<size-1>, item<size-1> >
>
struct queen : queen<typename Solution::nextStep>
{
template <bool, class ASolution>
struct print {
static void it() {}
};
template <class ASolution>
struct print<true,ASolution> {
static void it() {
std::cout<<" ";
std::cout<<static_cast<char>( 'a' + ASolution::column );
std::cout<<static_cast<char>( '1' + ASolution::row );
}
};
queen() {
print<Solution::useNextRow,Solution>::it();
}
};
template <> struct queen<null> {
queen() {
std::cout<<"Result:";
}
};
int main() {
queen<> Queen;
}