【发布时间】:2020-10-29 14:31:48
【问题描述】:
这是对此处提问和回答的问题的扩展:How to define a multiset using a function pointer?
不幸的是,我没有足够的声誉以接受的答案向用户询问我的问题作为评论(还有 9 个问题......),所以我来了。希望这没问题。
在那个问题中,我也在研究 C++ Primer 并且达到了相同的部分。使用上面链接中给出的简化示例,我试图理解这一行:
std::multiset<A, decltype(compareA)*> m1(compareA);
据我所知,这是复制构造函数的语法。例如,将整数的多重集 m1 初始化为多重集 m2 的副本,写为 std::multiset<int> m1(m2);。
那么当我们使用函数指针时,这里发生了什么?这只是语法糖来让decltype(compareA)*返回的函数指针类型指向compareA吗?我认为我从根本上误解了这条线在做什么。
作为旁注,我应该如何阅读std::multiset 上的文档才能回答这个问题?我觉得 C++ 文档比 Java 文档更难访问,但也许我只是找错地方了。
【问题讨论】:
标签: c++ constructor function-pointers multiset