このコード標準は準拠していますか?
#include <stdio.h>
#include <cstdio>
int main() {
FILE *f1 = 0;
std::FILE *f2 = f1;
}
説明:標準には [headers] と記載されています。
[...] 各ヘッダーの内容は
cname
、対応するヘッダーの内容と同じでなければなりませんname.h
[...] 包含によるかのように。ただし、C++ 標準ライブラリでは、宣言 [...] は名前空間の名前空間スコープ (3.3.6) 内にありますstd
。これらの名前が最初にグローバル名前空間スコープ内で宣言され、次にstd
明示的なusing 宣言(7.3.3) によって名前空間に挿入されるかどうかは指定されていません。
したがって、明示的な using 宣言によって注入されない場合、それらは異なる型である可能性がありますか? std
テキストの残りの半分は、名前が名前空間内にあることを要求するこの要件と明らかに矛盾しているため、「包含によるかのように」というフレーズは決定的ではないと思います。