【发布时间】:2014-12-27 02:32:57
【问题描述】:
我有一个模板界面
template <typename Graph, typename V>
size_t bfs(const Graph& g, const V s, const V x);
其中类型 V 是顶点的名称。预计它将是一种简单的复制类型(任何原语),但没有什么能阻止用户使用 std::string 作为名称。
通过引用,复制了 8 个字节(64 位),并且必须做额外的工作才能取消引用。这与 4 个字节相比,对于命名顶点的 int 或 size_t 的通常情况没有额外的工作。
接口应该是const V& 还是只是const V?
【问题讨论】:
标签: c++ templates interface reference