错误重载在构建"OpenSubdiv"时具有类似的转换
Error overloads have similar conversions while building "OpenSubdiv"
在构建[OpenSubdiv] (http://graphics.pixar.com/opensubdiv/docs/cmake_build.html):
时遇到以下错误error C2666: 'OpenSubdiv::v3_0_0_beta::Vtr::internal::StackBuffer<TYPE,SIZE>::operator []' : 4 overloads have similar conversions
触发错误的代码行是:
for (int i = 0; i < pVertEdges.size(); ++i) {
cVertEdgeBuffer[i] = _refinement.getEdgeChildEdges(pVertEdges[i])[pVertInEdge[i]];
}
实例是:
internal::StackBuffer<Index,16> cVertEdgeBuffer(_childLevel._maxValence);
类StackBuffer
中的重载操作符[]似乎有一些歧义。template <typename TYPE, unsigned int SIZE>
class StackBuffer
{
StackBuffer();
StackBuffer(size_type size);
~StackBuffer();
public:
TYPE & operator[](size_type index) { return _data[index]; }
TYPE const & operator[](size_type index) const { return _data[index]; }
operator TYPE const * () const { return _data; }
operator TYPE * () { return _data; }
};
我将编译从VS2012更改为VS2010,但错误仍然出现。
这个错误是由于OpenSubdiv的源还是由于我的Cmake配置?我添加了OpenSubdiv所需的所有依赖项。
这个问题在OpenSubdiv (dev-branch)中修复了https://github.com/PixarAnimationStudios/OpenSubdiv/issues/622 issuecomment - 111051840
相关文章:
- 构造函数和转换运算符之间的重载解析
- 如何在C++中正确重载运算符转换字符*?
- MSVC 错误:4 个重载中的任何一个都无法转换所有参数类型
- C++:从重载函数转换为 std::function
- 为什么选择转换运算符的重载?
- C++stoi:这两个重载都无法转换所有参数类型
- 为什么这个涉及重载运算符和隐式转换的C++表达式是不明确的
- C++ 函数重载不明确,没有自动类型转换
- C++ 运算符重载转换
- 派生类 插入和提取运算符重载以及基类与派生类之间的强制转换
- unordered_set使用重载运算符=设置转换
- C++:使用重载而不是动态强制转换通过基选择派生类
- 具有重载类型转换运算符的函数对象崩溃
- 类型转换运算符重载与 as 非成员函数
- 模板化转换运算符的重载解析
- 类型转换重载
- 转换重载函数是不明确的
- 联合上的类型转换重载而不重载 +=
- C++类型转换重载
- c++的强制转换重载等价