我不明白为什么
- I saw
import std.core;
here
- I can't
import std;
- I can't
import std.iostream;
- I can
#include <iostream>
您能解释一下为什么会发生上述情况吗?也许我猜std.iostream
不是一个模块。那么为什么1.
works?
@Someprogrammerdue 提供this参考,它说
import <iostream>; // import declaration
当我在编译器中运行以下内容时
import <iostream>;
int main()
{
return 0;
}
I get
main.cpp:1:8: error: 'iostream' was not declared in this scope
1 | import<iostream>;
为什么会发生这种情况?
我不明白为什么
- 我看到导入 std.core;这里
你看到了你所做的事情,因为你阅读了该页面,这就是那里写的内容。
- 我无法导入 std;
这是因为 C++20 标准库没有定义模块。因为没有其他库可以(或不应该)定义模块std
因为该模块名称是为语言实现/未来标准化保留的。
- 我无法导入 std.iostream;
See 2.
- I can
#include <iostream>
该头文件是 C++20 标准库的一部分。
那为什么1.有效呢?
MSVC 文档解释道:
尽管 C++20 标准未指定,但 Microsoft 允许将其 C++ 标准库的实现作为模块导入。
附:截至撰写本文时,所有主要编译器仅部分实现了对模块的支持,但 MSVC 除外,MSVC 似乎自 19.28 以来已完全实现(模块化标准库不是此要求)。
附言计划为 C++23 提供模块化标准库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)