gpt4 book ai didi

c++ - `import` 和 `#include` 之间的区别? cpp20

转载 作者:行者123 更新时间:2023-12-03 11:15:01 36 4
gpt4 key购买 nike

我不明白为什么

  1. 我看到了 import std.core; here
  2. 我不能import std;
  3. 我不能import std.iostream;
  4. 我可以#include <iostream>

您能解释一下为什么会发生上述情况吗?也许我猜std.iostream不是模块。那为什么1.有用吗?

@Someprogrammerdue 提供 this引用,它说

import <iostream>;         // import declaration

当我在我的编译器中运行以下命令时

import <iostream>;

int main()
{

return 0;
}

我明白了

main.cpp:1:8: error: 'iostream' was not declared in this scope
1 | import<iostream>;

为什么会这样?

最佳答案

I don't understand why

  1. I saw import std.core; here

您看到了您所做的事情,因为您阅读了该页面,这就是那里写的内容。

  1. I can't import std;

这是因为 C++20 标准库没有定义模块。并且因为没有其他库可以(或不应该)定义模块 std因为该模块名称是为语言实现/ future 标准化保留的。

  1. I can't import std.iostream;

见 2。

  1. I can #include <iostream>

该 header 是 C++20 标准库的一部分。

Then why 1. works?

MSVC 文档解释:

Although not specified by the C++20 standard, Microsoft enables its implementation of the C++ Standard Library to be imported as modules.

附言在撰写本文时,对模块的支持仅由所有主要编译器部分实现,MSVC 除外,它似乎自 19.28 以来已完全实现(模块化标准库不是此要求)。

附言模块化标准库计划用于 C++23。

关于c++ - `import` 和 `#include` 之间的区别? cpp20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66379999/

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