gpt4 book ai didi

c++ - 有没有办法包含 std::filesystem 的转发 header ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:08 25 4
gpt4 key购买 nike

与 iostreams 具有 forward-include header 的方式相同 #include<iosfwd>一个只有声明的 header ,我认为文件系统也会有一个。但是我找不到。

我有一个类用 filesystem::path const& 声明了一个成员函数作为论点,把整个 #include<experimental/filesystem> 都带进来似乎有点矫枉过正。只是为了得到path .

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

最佳答案

有这样的标题吗?没有。

你能做这样的标题吗?还有,不。 [namespace.std]/1 tells us:

The behavior of a C++ program is undefined if it adds declarations or definitions to namespace std or to a namespace within namespace std unless otherwise specified.

因为 std 命名空间的任何前向声明都必须是 std 命名空间的一部分,所以你不能那样做。您可以编写模板特化,在某些情况下您可以访问 std 本身。但是声明 std::filesystem::* 不是你能做的。

关于c++ - 有没有办法包含 std::filesystem 的转发 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56700322/

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