排序矢量os字符串c ++ visual studio 2010 - 错误C2784无法推断出模板参数

时间:2012-11-29 17:59:32

标签: c++ visual-studio-2010

我想确认这是否是Visual Studio 2010中的错误。如果是,则可以更改任何设置吗?或者我该如何解决这个问题?

#include <iostream>
#include <vector>
#include <algorithm>

std::vector<std::string> test;

test.push_back("hello"); test.push_back("ABC");

std::sort(test.begin(), test.end());

这是因为我没有包含std :: string标题。

2 个答案:

答案 0 :(得分:4)

我的第一个猜测是你忘了包含一个标题(可能是<string>)。你可以从一个不同的头文件中得到一些最小的前向声明(或类似的东西),这些头文件允许部分代码编译,但是其他部分以奇怪的方式破坏,导致误导性的错误消息。

在快速测试中,这将编译VS 2008至2012:

#include <vector>
#include <string>
#include <algorithm>

int main() {

    std::vector<std::string> test;

    test.push_back("hello");
    test.push_back("ABC");

    std::sort(test.begin(), test.end());
}

答案 1 :(得分:0)

编译好......

#include "stdafx.h"
#include <string>
#include <vector>
#include <algorithm>

int _tmain(int argc, _TCHAR* argv[])
{
std::vector<std::string> test;

test.push_back("hello");
test.push_back("ABC");

std::sort(test.begin(), test.end());
return 0;
}