gpt4 book ai didi

c++ - 如何轻松实现成员函数作为模板参数?

转载 作者:太空狗 更新时间:2023-10-29 21:25:23 26 4
gpt4 key购买 nike

我想开发一个容器,它可以使用属性访问成员函数(例如 Name())对其元素进行排序。我想按如下方式使用它

SortedVector<T, &T::Name> v;
T t;
v.Add(t);
v.FindElementWithName("AName");

如何声明模板类?非常感谢。

最佳答案

除非您只允许一种函数结果类型,否则没有允许您设想的简单用法的声明。

有了这个限制,你可以做例如

template< class Item, std::string (Item::*)() const >
class SortedVector;

但更一般地(不支持简单表示法)你可以做

template< class Item, class Result, Result (Item::*)() const >
class SortedVector;

无论如何,主要问题是如何利用标准库的类。

我想我可能会使用 std::vector 进行存储,使用 std::map 进行排序。

关于c++ - 如何轻松实现成员函数作为模板参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com