开发环境:VS2017
出错的代码如下:
#include "pch.h"
#include "MyArr.hpp"
#include <iostream>
#include <string>
using namespace std;
int main()
{
MyArray<int, 5> arr();
std::cout << "Hello World!\n";
return 0;
}
其中MyArray是一个自己编写的类模板,调试时编译器警告:
MSDN的解释:编译器检测到未使用的函数原型。如果有意将该原型作为变量声明,则移除左/右括号。
简单来说,就是编译无法分辨你当前的代码是在声明一个函数原型,还是在调用一个函数。
我上面的代码,本来的意图是调用一个无参的构造函数,然后编译器认为我是在声明一个函数,这个函数的返回类型是MyArray,所以出现了警告。
修改后的代码如下:
#include "pch.h"
#include "MyArr.hpp"
#include <iostream>
#include <string>
using namespace std;
int main()
{
MyA