如何在Visual Studio C ++ 2010 IDE中报告错误

时间:2012-08-14 23:02:55

标签: visual-studio-2010 visual-studio visual-c++ intellisense visual-c++-2010

我有一个程序(修剪方式向下)编译并按我认为应该运行,但在代码窗口中,星号(运算符*)下面有一个红色的波浪线,鼠标悬停标题显示,'错误,没有运算符*匹配这些操作数。'我猜这个波浪线忽略了告诉编译器。如果我将operator *更改为名为“dot”的函数,则会发生同样的事情。

如果有足够的箍跳过,我想向MS报告。但首先,告诉我编译器和我是否错了,并且曲线是正确的。

#include <vector>
#include <iostream>
//#include "fp_vectors.h"
// Header file =================
#include <type_traits>
#include <algorithm>

namespace dj {

    // Dot-product of two real-valued vectors
    template <typename FirstType, typename SecondType> 
    auto operator*(const FirstType &a, const SecondType &b) -> decltype(a[0]*b[0]){
       std::remove_const<decltype(a[0]*b[0])>::type ret = 0.0;
       const int sz = std::min(a.size(),b.size());
       for(int i=0;i<sz;++i) {
           ret += a[i]*b[i];
       }
       return ret;
    }


} // namespace dj

// End header file ================


using namespace std;
typedef vector<float> fvec;
typedef vector<double> dvec;

using namespace dj;

int main()
{
    const size_t sz = 3;
    fvec fv(sz);
    dvec dv(sz);
    for(size_t i=0; i<sz; ++i) {
        fv[i] = -.89f*(i-1.0f);
        dv[i] = 1.6*(i-2.2);
    }
    double ret = dv*fv; // Earns a red squiggly
    cout << ret << endl;
    return 0;
}

1 个答案:

答案 0 :(得分:3)

Visual Studio中的错误可能会在Microsoft Connect上报告。

但是,我简要介绍了一下你的代码,并且Visual Studio 2012中没有任何波形。所以,如果这里有一个bug,它看起来已经修复了。