Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.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++ 有没有办法为std::filesystem包含转发头?_C++_Filesystems_C++14_Header Files - Fatal编程技术网

C++ 有没有办法为std::filesystem包含转发头?

C++ 有没有办法为std::filesystem包含转发头?,c++,filesystems,c++14,header-files,C++,Filesystems,C++14,Header Files,与iostreams的forward include头#include头只包含声明一样,我假设文件系统也会有一个。但是我找不到 我有一个类,它声明了一个单成员函数,参数为filesystem::path const&,为了得到路径,而把整个#include都包含进去,这似乎有些过分 #include<experimental/filsystem_fwd> // or #include<experimental/filesystem/path/*only*/> ... st

与iostreams的forward include头
#include
头只包含声明一样,我假设文件系统也会有一个。但是我找不到

我有一个类,它声明了一个单成员函数,参数为
filesystem::path const&
,为了得到
路径
,而把整个
#include
都包含进去,这似乎有些过分

#include<experimental/filsystem_fwd> // or #include<experimental/filesystem/path/*only*/>
...
struct A{
  ...
  void save(std::experimental::filesystem::path const& p);
}
#包括//或#包括
...
结构A{
...
void save(std::experimental::filesystem::path const&p);
}

有这样的标题吗?没有

你能做这样一个标题吗?还有,没有

如果C++程序在名称空间<代码> STD<代码>中添加声明或定义,或在命名空间<代码> STD < /C>中的命名空间,除非另有说明,否则未定义。


由于
std
名称空间的任何转发声明都必须是
std
名称空间的一部分,所以您不能这样做。您可以编写模板专门化,在某些情况下,您可以查看
std
本身。但是声明
std::filesystem::*
不是你能做的事。

Sad,但似乎不是。。。整个库都在大标题
(或
)中,我甚至没有想到要向前声明
路径。现在您提到它,它甚至不起作用,因为
path
是(可以是)实现细节的typedef
std::experimental::filesystem::v1::_cxx11::path
。因此,文件系统库在
namespace std{namespace experimental{namespace filesystem{class path;}}}}
之后不会编译,并显示一条消息
bits/fs_dir.h:94:36错误:对“path”的引用不明确…