Я пытаюсь реализовать priority_queue
, который содержит A<T>
объекты и использует пользовательский Compare
метод / тип.Согласно справочному примеру , это мой код:
template <class T>
class A{
T value;
A(T _value):value(_value){}
};
template <class T>
class ProblematicClass{
auto cmp = [](A<T>* l, A<T>* r) {return l->value > r->value; };
std::priority_queue < A<T>*, std::vector<A<T>*>, decltype(cmp) > q(cmp);
};
Но я получаю следующую ошибку:
ошибка C2853: 'cmp': элемент нестатических данных не может иметь тип, который содержит 'auto'
Я попытался определить определение lamda static
, но это приводит к новой синтаксической ошибке:
ошибка C2143: синтаксическая ошибка: отсутствует '}' до 'возврата'
Не могли бы вы помочь мне с этим?
ОБНОВЛЕНИЕ : I 'м с использованием VS2013