libstdc ++ - doc просто игнорирует импортированные c-функции, c ++ неужели? - PullRequest
0 голосов
/ 11 июня 2011

Каждый заголовок из стандарта C Библиотека входит в C ++ Стандартная библиотека под другим имя, сгенерированное удалением .h, и добавив 'c' в начале, для пример time.h становится ctime. Единственная разница между этими заголовками и традиционная библиотека C Standard Заголовки в том, что, где это возможно, функции должны быть помещены в std :: namespace (хотя мало на самом деле это делают компиляторы).

Поскольку функции c помещены в пространство имен std::, я попытался:

man std::printf

но получил:

No manual entry for std:printf

По каким-либо причинам? (Я установил libstdc++-doc и у меня нет проблем с каноническими вещами на C ++, такими как man std::cout)

UPDATE

Причина, по которой C ++ является глупой, по крайней мере, включает в себя:

  1. junky c ++ manual
  2. пустой программе на c ++ требуется libstdc++, libm и libgcc_s, в то время как программе c требуется только libc.

Ответы [ 2 ]

2 голосов
/ 11 июня 2011

Поведение функций стандартной библиотеки C находится вне контроля разработчиков libstdc ++.Он опирается (в этой и в большинстве других реализаций стандартной библиотеки C ++) на реализацию Libc базовой платформы.В Linux это, скорее всего, glibc, в Windows, msvcrt и т. Д. *

Дело в том, что все эти разные библиотеки обеспечивают разное и несоответствующее поведение, которое должно быть описано в документации libstdc ++и это невозможно (нет, очень сложно) сделать и поддерживать.Это также не имеет практической цели, так как эта документация существует в другом месте.

2 голосов
/ 11 июня 2011

Нет никакого смысла документировать функции C ++, которые взяты из стандарта C, если они идентичны и уже задокументированы (как printf is).

...