如何处理VS2015优化器的不一致?

时间:2016-01-13 11:29:49

标签: c++ visual-studio-2015 compiler-optimization

以下模板函数获取文件中的记录数。它已在Visual Studio(2005年,2012年)中正常运行多年。但是在Visual Studio 2015中,使用“最大化速度/ O2”进行优化时,除法运算将消失,并返回不正确的值。 (在调试中工作,而不是在发布中)

标题文件摘要:

template <class R, int N>
int MyClass<R,N>::GetCount() const
{
    return m_pPtr->GetFileSize() / sizeof(R) : 0;
}

在那里添加一些日志记录似乎可以修复它,例如:

template <class R, int N>
int MyClass<R,N>::GetCount() const
{
    FILE *FP = fopen("test.log", "a+");
    fprintf(FP, "whatever");
    fclose(FP);
    return m_pPtr->GetFileSize() / sizeof(R) : 0;
}

有没有办法以合理的方式解决这个问题?

0 个答案:

没有答案