Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这是MSVC++;编译器错误?_C++_Visual C++_Visual Studio 2013 - Fatal编程技术网

C++ 这是MSVC++;编译器错误?

C++ 这是MSVC++;编译器错误?,c++,visual-c++,visual-studio-2013,C++,Visual C++,Visual Studio 2013,我想我可能在VS2013附带的MSVC++编译器中发现了一个编译器错误,但这是一个如此简单的例子,我不能确定。再加上我还在学习C++,我想在提交任何东西之前先问一下。因为老实说,我很确定这只是我做错了什么,导致了一个不寻常的错误消息 无论如何,我将问题简化为一个小测试文件: #include <string> #include <iostream> std::wstring cstr_to_wstring(const char* cString) { std::

我想我可能在VS2013附带的MSVC++编译器中发现了一个编译器错误,但这是一个如此简单的例子,我不能确定。再加上我还在学习C++,我想在提交任何东西之前先问一下。因为老实说,我很确定这只是我做错了什么,导致了一个不寻常的错误消息

无论如何,我将问题简化为一个小测试文件:

#include <string>
#include <iostream>

std::wstring cstr_to_wstring(const char* cString) {
    std::string temp = cString;
    return { temp.begin(), temp.end() };
}

int main() {
    std::cout << cstr_to_wstring("Hi").c_str();
}
为了解决这个问题,我可以在第六行指定类型,以便:

返回{temp.begin(),temp.end()}

变成

返回std::wstring{temp.begin(),temp.end()}


这真的是一个编译器错误吗?谢谢。

是的,这是编译器中的一个错误。所有编译器崩溃都是编译器错误,不管代码是否格式正确。11月,Microsoft Connect上报告了此特定错误:


在这个bug中,Xiang报告说我们已经在编译器的下一个主要版本中修复了这个问题(我已经验证了您的代码使用最新的内部版本进行编译)。同时,建议的解决方法是执行您所做的操作,并在返回语句中命名类型。

我想说,
编译器中的内部错误总是值得报告的,无论使用的源代码是什么。当编译器声明这是编译器错误时,那么它就是编译器中的错误,或者它是要声明的错误,这是编译器中的一个bug。在这两种情况下,它都是一个编译器错误:-)哈哈,很好的观点,GSerg和Torsten…)您的代码已使用
g++(Debian 4.8.2-14)4.8.2
成功编译。但是,当<代码> CyScript(<代码> >返回<代码> const WCARAYT**/COD> >代码> CUT/CODE>打印了十六进制的地址值。@ NoDaKaAA:嗯,就像我说的,我真的是C++ NoOB,哈哈。我刚刚使用了我发现的第一个可以编译的函数:)嗨,詹姆斯,谢谢你的回复。:)在这里留下的评论鼓励了我之后,我已经在MS Connect上提出了一个bug;所以我想它应该被标记为一个副本。谢谢我们将把它作为一个副本来解决。一个bug被多次报告比完全不报告要好。:-)我正在阅读,它应该是固定的,但我仍然有同样的问题。MiguelEngor我刚刚证实,原来的问题程序编译成功Visual C++ 2015。是否有类似的程序,没有用Visual C++ 2015成功编译?如果是这样,请在Microsoft Connect上打开一个新的错误。@JamesMcNellis我正在尝试完全相同的程序。我正在将VS2013更新为更新5,如果更新后错误仍然存在,我将发送一份报告。谢谢
1>d:\documents\projects\compilerbugtest\compilerbugtest\compilerbugtest.cpp(6): fatal error C1001: An internal error has occurred in the compiler.
1>  (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 227)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.