gpt4 book ai didi

visual-studio-2010 - TVMet(矩阵库)与 VS2010

转载 作者:行者123 更新时间:2023-12-04 04:56:12 25 4
gpt4 key购买 nike

我正在尝试让 tvmet 与 VS2010 一起工作。我已经下载了 TvMet 源 ( http://tvmet.sourceforge.net/ ),在我的项目设置中包含了包含目录。然后我写

#include <tvmet/Matrix.h>

using namespace tvmet;

但我收到编译错误,说缺少 config.h。没关系。所以我从 config 文件夹中复制 config-vc71.h , 到 tvmet 目录就像 config.h ,但我随后得到错误
"Error  25  error C2244: 'tvmet::CommaInitializer<Obj,LEN>::operator ,' : unable to match function definition to an existing declaration"

这个错误是什么意思,我该如何解决?

最佳答案

在 CommaInitializer.h 中,内联实现

Initializer<value_type, 2> operator,(value_type rhs);

来自
template<class Obj, std::size_t LEN>
typename CommaInitializer<Obj, LEN>::template Initializer<typename Obj::value_type, 2>
CommaInitializer<Obj, LEN>::operator,(typename Obj::value_type rhs)
{
m_wipeout_on_destruct = false;
iterator iter1 = m_object.data();
*iter1 = m_data;
iterator iter2 = iter1 + 1;
*iter2 = rhs;
return Initializer<value_type, 2>(iter2 + 1);
}


Initializer<value_type, 2> operator,(value_type rhs)
{
m_wipeout_on_destruct = false;
iterator iter1 = m_object.data();
*iter1 = m_data;
iterator iter2 = iter1 + 1;
*iter2 = rhs;
return Initializer<value_type, 2>(iter2 + 1);
}

VS 不喜欢函数定义中的::template 关键字。如果您删除::template 关键字,您将破坏 gcc :( 但如果您内联实现,它应该可以正常工作。

希望它有帮助

关于visual-studio-2010 - TVMet(矩阵库)与 VS2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718139/

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