Это расширение вопроса, который был задан и дан здесь ответ: Как определить мультимножество с помощью указателя на функцию?
К сожалению, у меня недостаточно репутации, чтобы спросить пользователя с принял ответ на мой вопрос в виде комментария (еще 9 к go ...), так что я здесь. Надеюсь, это было нормально.
Как и в этом вопросе, я также работаю с C ++ Primer и занимаюсь тем же разделом. Используя упрощенный пример, приведенный в приведенной выше ссылке, я пытаюсь понять эту строку:
std::multiset<A, decltype(compareA)*> m1(compareA);
Насколько мне известно, это синтаксис для конструкторов копирования. Например, инициализация мультимножества целых чисел m1
как копии мультимножества m2
записывается как std::multiset<int> m1(m2);
.
Итак, что здесь происходит, когда мы используем указатели на функции? Это просто синтаксис c сахар, чтобы тип указателя функции, возвращаемый decltype(compareA)*
, указывал на compareA
? Я думаю, что я в корне неправильно понимаю, что делает эта строка.
В качестве примечания, как я должен прочитать документацию на std :: multiset , чтобы ответить на этот вопрос? Мне кажется, что документация по C ++ намного менее доступна, чем, например, документация Java, но, возможно, я просто ищу не в том месте.