I m 试图撰写一个包含以下几个方面的内容:作为数据成员的探测器,并提供病媒界面的子集,以获取:
class Mesh
{
public:
private:
std::vector<Vector3> positions;
std::vector<Vector3> normals;
// Several other members along the same lines
};
你可以做的一件小事是增加职位、正常职位和其他困难。 为了便于使用类似于STL的方法(除阵列、其他集装箱等外),我赞成增加类似方法的想法:
public:
template<class InIter>
void AddNormals(InIter first, InIter last);
问题在于,从我对模板的理解来看,这些方法必须在标题档案中加以界定(要说是有意义的;如果没有具体的变体类型,汇编者就知道如何为这一方法的明显实施制定目标代码)。
这实际上是否是一个问题? 我的冷静反应不是要 around在头版档案中大量编码,而我的C++是一小rus,在玩具实例之外,没有太多的STL经验,我不肯定“可接受的”C++编码做法是什么。
Is there a better way to expose this functionality while retaining an STL-like generic programming flavour? One way would be something like this:
(最后名单)
class RestrictedVector<T>
{
public:
RestrictedVector(std::vector<T> wrapped)
: wrapped(wrapped) {}
template <class InIter>
void Add(InIter first, InIter last)
{
std::copy(first, last, std::back_insert_iterator(wrapped));
}
private:
std::vector<T> wrapped;
};
而后又暴露了Mesh的这些事例,但这种情形开始重新研究一些过度开采的情况。 任何建议都受到高度赞赏。