Форум программистов, компьютерный форум CyberForum.ru

Error: ambiguous overload for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}' - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать суммарную стоимость отгрузки http://www.cyberforum.ru/cpp-beginners/thread1310750.html
Журналотгрузки готовой продукции содержит наименование шести видов продукции, количество и цену за единицу продукции, суммарную стоимость о наименование. подсчитать суммарную стоимость, остальные данные ввести с клавиатуры. Вывести на экран все данные журнала.
C++ Remove_copy_if Требуется реализовать свой аналог шаблонной функции remove_copy_if. Из последовательности нужно убрать все четные элементы. Используется контейнер list. Я написал свой код: #include <iostream> #include <list> using std::list; using std::cin; using std::cout; class DivideByTwo { http://www.cyberforum.ru/cpp-beginners/thread1310738.html
Переставить значение элементов заданного одномерного массива, так чтобы все нулевые оказались в конце массива C++
А не нулевые в начале, не нарушая порядок, в котором они были
Вывести на экран график функции, используя символы C++
Используя стандартные символы (.,/*|\-_) вывести на экран график функции в заданном интервале, с задданным шагом. y=xcosx, , п/10;
C++ Свой тип Boolean http://www.cyberforum.ru/cpp-beginners/thread1310708.html
хз зачем я это написал просто скучно было :D enum Boolean_t { False, True }; struct Boolean { Boolean_t value; Boolean() : value(False) {} Boolean(Boolean_t v) : value(v) {}
C++ Вывести на экран таблицу ASCII Помогите пожалуйста с заданием: - Вывести на экран таблицу ASCII (столбцы - три старших двоичных разряда таблицы ASCII, строки - четыре младших разряда). подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3709 / 1984 / 516
Регистрация: 18.10.2014
Сообщений: 3,566
26.11.2014, 07:49     Error: ambiguous overload for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}'
Цитата Сообщение от Toshkarik Посмотреть сообщение
size_t это гарантированно alias на один из фундаментальных типов.
Как раз таки не гарантируется, что за 'size_t' скрывается стандартный тип. Это может быть и какой-то платформенно-зависимый нестандартный тип.

Например, до С++11 самым большим целым типом в С++ был 'long', который не обязан быть 64-битным, но при этом 64-битные С++ платформы (с соответственно 64-битным 'size_t') появились задолго до С++11. Понятно, что на таких платформах за 'size_t' скрывалось что-то нестандартное. На таких платформах формально не гарантируется существование потоковых операторов ввода-вывода для 'size_t'.

К примеру, можно взять тот же MS Visual Studio - С++ платформу, которая относительно давно поддерживает 64-битный код (т.е. 64-битный 'size_t'), но до относительно недавнего времени не поддерживала 'long long'.

И даже на платформах с 'long long' не гарантируется, что 'size_t' будет использовать именно его.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru