gpt4 book ai didi

c++ - 在 VS2013 与 VS2012 中的不同行为

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:59 26 4
gpt4 key购买 nike

在此测试程序中,VS2012 Update 4 和 VS2013 Update 1 之间出现不同的行为:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <filesystem>

using namespace std;
using namespace std::tr2::sys;

void main()
{
string s("C:\\");

for (auto i = directory_iterator(path(s).parent_path()); i != directory_iterator(); ++i)
cout << (path(s).parent_path()/i->path()).string() << endl;
}

VS2012 产生:

C:AUTOEXEC.BAT
...

VS2013 产生:

C:C:AUTOEXEC.BAT
...

哪些行为符合 C++ 标准?

编辑

因为 filesystem 还没有在 C++ 标准中,而只是一个 library proposal ,我重新表述我的问题:VS2013 的行为是一个错误吗?

最佳答案

我相信这是 VC++ 2012 中的一个错误。以下是 C++11/14 STL Features, Fixes, And Breaking Changes In VS 2013 的摘录.

<filesystem>'s directory_iterator was returning paths that were too short (DevDiv#411531). (Note that recursive_directory_iterator worked correctly.) We fixed directory_iterator to follow N1975, the Filesystem V2 draft. (Filesystem V3 is on our radar, but it won't be implemented in 2013 RTM.)

你可以找到N1975 here .

关于c++ - <filesystem> 在 VS2013 与 VS2012 中的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21694675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com