При попытке использовать шаблон CMF<ULONG> (код ниже) получаю ошибку:
E2402 Illegal base class type: formal type 'CMCP<type,BackInit<type> >' resolves to 'CMCP<unsigned long,BackInit<type> >'
При этом CMCP<ULONG> раскрывается нормально. И CMCP<ULONG, BackInit>, например, тоже.
В VS 2010 и GCC все ок, но надо подружиться и с билдером.
template <class type>
KEY NoInit(CKeyedParam<KEY, type>& p) {
...
}
template <class type>
KEY ZeroInit(CKeyedParam<KEY, type>& p) {
...
}
template <class type>
KEY BackInit(CKeyedParam<KEY, type>& p) {
...
}
template<class type, KEY (*InitFunc)(CKeyedParam<KEY, type>& p) = NoInit>
class CMCP : public CCData {
....
template <class type>
class CMF : public CMCP<type, BackInit> {
public:
...
};