Я получаю следующую базовую ошибку:
1> c: \ program files \ microsoft visual studio 10.0 \ vc \ include \ utility (163): ошибка C2436: 'second': функция-членили вложенный класс в списке инициализатора конструктора
Так же, как и множество ошибок здесь - я понятия не имею, где искать или что идет не так.(Я знаю, что это за функции, но я не могу понять, почему это не работает)
Часть заголовка:
typedef void *DuplicateFn(pTree&, const pTree&);
enum DuplicateTy {
SKIP,
OVERWRITE,
ASK
};
typedef std::map<DuplicateTy, DuplicateFn> DuplicateMapTy;
static const DuplicateMapTy DuplicateFns;
static DuplicateMapTy DuplicateFns_INIT();
подробное пространство имен:
namespace detail {
void OverWriteFn(GMProject::pTree& tOut, const GMProject::pTree& tIn);
void AskFn(GMProject::pTree& tOut, const GMProject::pTree& tIn);
}
Исходная часть:
GMProject::DuplicateMapTy GMProject::DuplicateFns_INIT() {
DuplicateMapTy tmp;
auto p(std::make_pair(GMProject::OVERWRITE, &detail::OverWriteFn));
tmp.insert(p); //offending line
return tmp;
}
const GMProject::DuplicateMapTy GMProject::DuplicateFns(GMProject::DuplicateFns_INIT());
Как я уже сказал, я слепо смотрю на это, почему я не могу вставить эту пару в карту?Я просто вставляю указатель функции и перечисление?