Могут ли типы в `cname `и `name.h `быть разными?

Соответствует ли этот код стандарту ?

#include <stdio.h>
#include <cstdio>

int main() {
    FILE *f1 = 0;
    std::FILE *f2 = f1;
}

Пояснение:В стандарте указано [заголовки] :

[...] содержимое каждого заголовка cnameдолжно быть таким же, как и у соответствующего заголовка name.h[...] как бы путем включения. Однако в стандартной библиотеке C++ объявления [...] находятся в пределах пространства имен (3.3.6 )пространства имен std. Не указано, объявляются ли эти имена сначала в рамках глобального пространства имен, а затем внедряются в пространство имен stdявным образом с использованием -объявлений(7.3.3 ).

Таким образом, если они не вводятся явным образом с использованием объявления -, могут ли они быть другого типа? Я не думаю, что фраза «как бы путем включения» является решающей, поскольку другая половина текста явно противоречит этому требованию, требуя, чтобы имена находились в пространстве имен std.

5
задан ybungalobill 5 May 2012 в 21:21
поделиться