Я думаю, вы не видите возможности стандартных библиотек.Они предназначены для обеспечения общего набора функциональных возможностей, доступных для любого совместимого со стандартами компилятора.Например, если я напишу следующий код:
#include <iostream>
int main(int a, char** s)
{
std::cout << "Hello World" << std::endl;
return 0;
}
Это будет скомпилировано любым совместимым со стандартами компилятором.Вы зацикливаетесь на том, как работает std::cout
на разных платформах по-разному - да, конечно.Но в этом вся прелесть - почему ты должен заботиться?В Windows, если вы скомпилируете это с помощью MS Visual C ++, этот компилятор будет иметь правильную реализацию (о которой не заботится стандарт) для поддержки вышеупомянутого стандартного способа записи в стандартный вывод.Аналогично, в Linux GCC будет иметь правильный код для записи в любую реализацию, а в Solaris CC будет делать то же самое.
Вам не нужно беспокоиться или откровенно беспокоиться.Обработка для вашей платформы обеспечивается компилятором, который вы используете для этой платформы.У вас есть хороший чистый высокоуровневый интерфейс для работы.
Вас волнует, как Java VM обрабатывает детали каждой платформы?Это не ваша забота, вы знаете, когда вы делаете System.out.println()
, она будет записана на экран (или что-то еще для этой ВМ) соответствующим образом.Итак, почему вы зацикливаетесь на этом?
Что вы понимаете, так это то, будет ли компилятор, который вы используете на конкретной платформе, обеспечивать все функции стандартной библиотеки (т. Е. Полностью ли он соответствует стандартам илинет) а если нет, то чего не хватает и как обойти это.Остальное, откровенно говоря, не имеет значения!
А если вам это не нравится, хорошо заплатите за что-то вроде Roguewave - которое откровенно отнимает деньги, но это ваши деньги, чтобы разозлить ...