/ C++

std::basic_ifstream在Windows上的一个细节问题

之前在编写代码的时候,由于长期以来使用最多的环境为Windows+Visual Studio(MSVC),所以长时间以来都是按照VS给我的参数列表提示来编写,但是,在把一段使用了std::wifstream编写的代码放到Ubuntu(WSL)中使用G++/Clang++进行编译时却产生了如下的错误(修改代码后得到的简化版本错误信息,原始错误信息观感实在是太差了)

(当时的构造器错误截图没留着,懒不想去复现编译器提示的构造器错误......只有open函数的错误信息了)

错误信息明显可看出,编译器告诉我std::basic_ifstream的构造器(以及open函数)并没有使用std::wstring的版本。
但是使用MSVC STL编译的时候并没有出现这个问题。
于是打开cppreference页面:basic_ifstream页面

这里告诉我的basic_ifstream构造器并没有使用std::wstring的版本。

open函数也没有。
所以,基本可以断定使用wstring的版本是微软自己搞出来的了。