gpt4 book ai didi

c++ - 转发声明一个标准容器?

转载 作者:IT老高 更新时间:2023-10-28 13:58:26 25 4
gpt4 key购买 nike

是否可以在头文件中转发声明标准容器?比如下面的代码:

#include <vector>

class Foo
{
private:
std::vector<int> container_;
...
};

我希望能够做这样的事情:

namespace std
{
template <typename T> class vector;
}

class Foo
{
private:
std::vector<int> container_;
...
};

这个可以吗?

最佳答案

std 命名空间中声明 vector未定义的行为。因此,您的代码可能有效,但也可能无效,并且编译器没有义务告诉您您的尝试何时无效。这是一场赌博,我不知道避免包含标准 C++ header 是否值得。

请参阅以下 comp.std.c++.moderated 讨论:

forward declaring std::vector. Works, but is it legal and standard compliant?

关于c++ - 转发声明一个标准容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/307343/

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