Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Конструкторы ofstream и стандарт C++11 и компилятор gcc необходимо разобраться

26.09.2014, 13:16. Показов 4753. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Условимся, что компилятор g++ поддерживает этот стандарт, ибо ошибок, говорящих об обратном не замечено вроде.

C++
1
2
3
4
5
6
7
8
//main.cpp
#include <fstream>
using namespace std;
int main()
{
   ofstream of("f.txt");
   ofstream of_(of);
}
команда g++.exe main.cpp и простыня ошибок
C:\mingw32\bin>g++.exe main.cpp
In file included from C:/mingw32/i686-w64-mingw32/include/c++/ios:42:0,
from C:/mingw32/i686-w64-mingw32/include/c++/istream:38,
from C:/mingw32/i686-w64-mingw32/include/c++/fstream:38,
from main.cpp:2:
C:/mingw32/i686-w64-mingw32/include/c++/bits/ios_base.h: In copy constructor 'std::basic_ios<char>::
basic_ios(const std::basic_ios<char>&)':
C:/mingw32/i686-w64-mingw32/include/c++/bits/ios_base.h:786:5: error: 'std::ios_base::ios_base(const
std::ios_base&)' is private
ios_base(const ios_base&);
^
In file included from C:/mingw32/i686-w64-mingw32/include/c++/ios:44:0,
from C:/mingw32/i686-w64-mingw32/include/c++/istream:38,
from C:/mingw32/i686-w64-mingw32/include/c++/fstream:38,
from main.cpp:2:
C:/mingw32/i686-w64-mingw32/include/c++/bits/basic_ios.h:66:11: error: within this context
class basic_ios : public ios_base
^
In file included from main.cpp:2:0:
C:/mingw32/i686-w64-mingw32/include/c++/fstream: In copy constructor 'std::basic_ofstream<char>::bas
ic_ofstream(const std::basic_ofstream<char>&)':
C:/mingw32/i686-w64-mingw32/include/c++/fstream:602:11: note: synthesized method 'std::basic_ios<cha
r>::basic_ios(const std::basic_ios<char>&)' first required here
class basic_ofstream : public basic_ostream<_CharT,_Traits>
^
In file included from C:/mingw32/i686-w64-mingw32/include/c++/ios:43:0,
from C:/mingw32/i686-w64-mingw32/include/c++/istream:38,
from C:/mingw32/i686-w64-mingw32/include/c++/fstream:38,
from main.cpp:2:
C:/mingw32/i686-w64-mingw32/include/c++/streambuf: In copy constructor 'std::basic_filebuf<char>::ba
sic_filebuf(const std::basic_filebuf<char>&)':
C:/mingw32/i686-w64-mingw32/include/c++/streambuf:802:7: error: 'std::basic_streambuf<_CharT, _Trait
s>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char; _Traits = std
::char_traits<char>]' is private
basic_streambuf(const basic_streambuf& __sb)
^
In file included from main.cpp:2:0:
C:/mingw32/i686-w64-mingw32/include/c++/fstream:72:11: error: within this context
class basic_filebuf : public basic_streambuf<_CharT, _Traits>
^
C:/mingw32/i686-w64-mingw32/include/c++/fstream: In copy constructor 'std::basic_ofstream<char>::bas
ic_ofstream(const std::basic_ofstream<char>&)':
C:/mingw32/i686-w64-mingw32/include/c++/fstream:602:11: note: synthesized method 'std::basic_filebuf
<char>::basic_filebuf(const std::basic_filebuf<char>&)' first required here
class basic_ofstream : public basic_ostream<_CharT,_Traits>
^
main.cpp: In function 'int main()':
main.cpp:8:19: note: synthesized method 'std::basic_ofstream<char>::basic_ofstre am(const std::basic_
ofstream<char>&)' first required here
ofstream of_(of);
^

C:\mingw32\bin>
ЧЯДНТ? Здесь увидел синтаксис C++11. Спасибо, кто откликнется.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2014, 13:16
Ответы с готовыми решениями:

Почему компилятор не распознает тип ofstream?
Почему не определяет ofstream хотя библиотека #include &quot;fstream&quot; есть П.5.18.Правил Запрещено размещать задания и решения в виде...

Компилятор не поддерживает в полной мере стандарт С++11 и выдает ошибку
Добрый день. Работаю с Geany компилятор G++ . Сегодня столкнулся с проблеммой. Оказывается мой компилятор не поддерживает в полной мере...

gcc/c++ компилятор
в какую папку устанавливается компилятор gcc или g++ по умолчанию? Добавлено через 12 минут уже нашёл

46
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 13:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от kravam Посмотреть сообщение
Реально не могу взять в толк. Разработчики включили нечто (конструктор) в новый стандарт. Потом переиграли, этот же конструктор удалили и известили нас об этом? Чё-то здесь не то...
По порядку.
1. Копировать поток нельзя по очевидным причинам. Следовательно, нужен механизм, запрещающий пользователю использовать операции копирования - конструктор копирования и оператор присваивания.
2. Для того, чтобы добиться этого в предыдущем стандарте, приходилось конструктор копирования и оператор присваивания помещать в приватную часть, закрывая тем самым от пользователя. Закрытые части классов не документируются для конечного пользователя.
3. Пункт 2 - это хак, поскольку невозможно запретить использования этих методов внутри самого класса. Разве что можно было поместить в приватную часть объявления, не снабжая их определениями. Но см выше - это хак.
4. В новом стандарте появился более семантичный способ удаления методов - и он уже включается в документацию, поскольку является такой же полноценной спецификацией интерфейса как для пользователей, так и для разработчиков библиотеки.
2
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 13:49  [ТС]
Цитата Сообщение от aLarman Посмотреть сообщение
просто появился синтексис позволяющий этот конструктор явно удалить, вот они и написали про него, никто его в этот класс не включал!
Зачем они про него написали?

Я сейчас пишу программу, у меня там куча всяких временных переменных, функций, есть отдельный экзешник для тестирования. Но по окончании работ я удалю из исходников все отладочные надписи, все временные переменные и вспомогательные функции, чтобы не спотыкаться об них, они черновик. Всё, что не работает- всё удалю. Если всё это оставлять, даже в закомменченном виде, как потом работать с исходниками? Ужас! А тут нам говорят- оказывается, в процессе работы над классом ofstream был у нас такой конструктор, но потом мы его удалили. Мне, как пользователю класса зачем знать, что когда-то у разработчиков был какой-то инструмент (конструктор), которым я в потенциале мог бы пользоваться, но которым я пользоваться не буду потому, что его забраковали? Незачем. Поэтому тут что-то не то.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.09.2014, 14:15
Цитата Сообщение от kravam Посмотреть сообщение
классом ofstream был у нас такой конструктор, но потом мы его удалили.
Всё не так. Зачем из сообщения к сообщению повторять одну и ту же неправильно понятую информацию?

Некоторые функции, в частности копирующий конструктор создаются для класса по умолчанию, даже если они не объявлены явно. Версия по умолчанию просто осуществляет почленное копирование полей. Но если такое поведение не соответствует семантике класса, то возможны варианты: либо пишут свой копирующий конструктор (если объект разрешается копировать) или объявляют его как deleted (раньше, до С++11, это делалось помещением объявления копирующего конструктора в private секцию, без определения оного), если копирование не предполагается.

Можно бы и в Стандарт заглянуть по теме deleted функций (8.4.3 Deleted definitions)
1
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
26.09.2014, 17:03
Цитата Сообщение от kravam Посмотреть сообщение
Ужас! А тут нам говорят- оказывается, в процессе работы над классом ofstream был у нас такой конструктор, но потом мы его удалили. Мне, как пользователю класса зачем знать, что когда-то у разработчиков был какой-то инструмент (конструктор), которым я в потенциале мог бы пользоваться, но которым я пользоваться не буду потому, что его забраковали? Незачем. Поэтому тут что-то не то.
Выше уже все объяснили. Я просто добавлю.
Понимаешь ли какая вещь, языки развиваются не только в направлении возможности что-то сделать, но и в направлении улучшить самодокументируемость кода.
Знаком с понятием контракт?
Например в С++ есть const. Этот const на самом деле не нужен для решения задачи. Мы можем просто помнить какие объекты для нас константы, а какие нет. Правда ведь?
Но помнить это утомительно. Тем более, если кто-то другой будет смотреть наш код, то он, естественно, никогда не узнает какие объекты мы задумали const, а какие нет.
Гораздо проще переложить это на компилятор, пусть он следит, что константно, а что нет. И другой программист никогда не ошибется, компилятор ему не позволит - напомнит. Иными словами const - это способ описания контракта.
Теперь к текущей теме. В соответствии с архитектурой потоков их копировать не имеет смысла. Поток - всегда уникален. Однако в С++ конструктор копирования автоматически генерируется. Мы можем просто написать в документации, что поток копировать нельзя. Но язык позволит это сделать, позволит совершить логическую ошибку - нарушить контракт. И ее обязательно кто-то совершит, т.к. (почти) никто не читает документацию. Это проблема. В С++03 не было языкового средства установить контракт отсутствия копирования (т.е. не было синтаксиса позволяющего указать, что объект класса копировать нельзя, так же как мы можем установить, что объект класса нельзя изменить посредством const). Поэтому для этих целей использовался хак, который описал 0x10 выше (перечитай его пост пожалуйста). В С++11 появилось языковое средство это сделать, без хака. Это средство позволяет пометить функцию класса невозможной к использованию (удалить). Семантически же поведение потоков в С++11 не изменилось, как нельзя их было копировать в С++03, так нельзя их копировать и в С++11, изменилось только средство позволяющее предостеречь пользователя класса от нарушения контракта.
4
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 19:23  [ТС]
Но ведь эти дядьки сами собирают компилятор, почему они делают так, чтобы

1) конструктор копирования всегда вызывался (даже если он вызывается объектом типа ofstream), а потом сами аккуратно так, как им кажется, делают так, чтобы
2) этот конструктор не вызывался, (объявляют его delete).

А почему они сразу-то не делают, чтобы он вызывался не во всех случаях? Это же не так, что им дали компилятор собранный, а они бедолаги думают, как бы сделать, чтобы конструктор копирования не вызывался (чтобы поток был один) нет, они его сами и собирают с нуля. Почему ж так-то?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 19:29
Цитата Сообщение от kravam Посмотреть сообщение
конструктор копирования всегда вызывался (даже если он вызывается объектом типа ofstream)
Эм... Что?
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
26.09.2014, 19:30
Цитата Сообщение от kravam Посмотреть сообщение
А почему они сразу-то не делают, чтобы он вызывался не во всех случаях? Это же не так, что им дали компилятор собранный, а они бедолаги думают, как бы сделать, чтобы конструктор копирования не вызывался (чтобы поток был один) нет, они его сами и собирают с нуля. Почему ж так-то?
При чем тут вообще компилятор? Стандартная библиотека - это такой же код, совершенно обычный. И играет он по тем же правилам, что и любой другой код. А правила описаны в стандарте ISO\IEC на язык С++.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 19:31
Цитата Сообщение от kravam Посмотреть сообщение
А почему они сразу-то не делают, чтобы он вызывался не во всех случаях?
Некоторые методы генерируются компилятором. В частности - КК. Логика такая: "Если объект может быть создан, то он может быть и скопирован". Особые случаи должны быть реализованы программистом.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 19:32  [ТС]
Я говорю, компилятор всегда добавляет конструктор копирования. Так почему он добавляет конструктор копирования в класс ofstream? Ну кто-то же этот компилятор делал! Почему так сделали-то? Ну ладно при царе горохе, согласен. Но щас-то все всё осмыслили и всё равно его так собирают.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 19:34
Цитата Сообщение от kravam Посмотреть сообщение
Так почему он добавляет конструктор копирования в класс ofstream?
Пардон, это предложение обрабатывать класс с именем ofstream как особый случай? Если так - даже не знаю как прокомментировать такое решение.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
26.09.2014, 19:45
Цитата Сообщение от kravam Посмотреть сообщение
Я говорю, компилятор всегда добавляет конструктор копирования. Так почему он добавляет конструктор копирования в класс ofstream? Ну кто-то же этот компилятор делал! Почему так сделали-то? Ну ладно при царе горохе, согласен. Но щас-то все всё осмыслили и всё равно его так собирают.
Ты не читаешь, что я написал? Код в стандартной библиотеки ничем не отличается от другого кода, который данный компилятор собирает. Стандартная библиотека это не часть ядра языка. Ее можно заменить на другую совершенно свободно или вообще исключить из состава компилятора, если того требует задача.

Добавлено через 3 минуты
Цитата Сообщение от kravam Посмотреть сообщение
Но щас-то все всё осмыслили и всё равно его так собирают.
Вообще, если ты пишешь возражения подобные этому, то ты либо не понял вот этот пост, либо проигнорировал его. Если не понял, то так и скажи, я объясню еще раз. Если проигнорировал, то, пардон, сказать мне больше нечего.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 20:02  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Код в стандартной библиотеки ничем не отличается от другого кода, который данный компилятор собирает. Стандартная библиотека это не часть ядра языка. Ее можно заменить на другую совершенно свободно или вообще исключить из состава компилятора, если того требует задача.
да? Ну тогда на пальцах. Библиотека pthread и wx немножко конфликтуют друг с другом у меня на компе. Они скачаны из разных мест и собраны разными разработчиками. Парням из pthread плевать на парней из wx, поэтому все конфликты должен разрешать я.

Но компилятор сделан так, что
a) КК вызывается всегда
б) После чего на него повешена мулька в виде delete о которую все- ах, простите, не все, а такие как я- спотыкаются, и после повешения этой мульки КК перестаёт вызываться.
в) И это сделал ОДИН И ТОТ ЖЕ человек, или одна команда разработчиков.

++++++++++++++++++++++++++++++++++++++++ +++++++++++

Если бы я качнул ofstream или как там она называется (std) отдельно он g++, может и вопроса бы такого нет возникло! Действительно, Петя сделал чтобы g++ ВСЕГДА вызывал KK, а Вася, который разрабатывал std сделал так, чтобы этого не было с помощью delete. Всё логично. Мне щас если самому понадобится использовать delete при создании некоторых классов, я и сам буду это делать.

Но если бы я кропал компилятор, я бы сразу сделал, чтобы при создании этих классов КК не вызывался. Безо всяких delete. Это же правильно? Правильно. Но так не было сделано для класса ofstream. Не может же это быть простым недосмотром.

(Пример: у меня в ту же библиотеку wx ЖЁСТКО зашит макрос UNICODE И никак его не отменить. Вот то есть никак. Вот то есть изначально компилятор сделан ТАК. То есть они как хотят так и делают.)
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 20:05
Цитата Сообщение от kravam Посмотреть сообщение
a) КК вызывается всегда
Только если он есть и вызван в коде.

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
Но если бы я кропал компилятор, я бы сразу сделал, чтобы при создании этих классов КК не вызывался. Безо всяких delete. Это же правильно? Правильно. Но так не было сделано для класса ofstream. Не может же это быть простым недосмотром.
Как отличить класс ofstream от остальных, чтобы применить для него специальное правило? Он не встроен в компилятор. Вообще я начинаю повторять то, что уже сказал DrOffset,
1
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
26.09.2014, 20:14
Цитата Сообщение от kravam Посмотреть сообщение
Это же правильно? Правильно.
Нет, не правильно. Это не правильно для С++, т.к. в этом случае пришлось бы делать стандартную библиотеку частью ядра языка, а это противоречит духу и философии С++.
Цитата Сообщение от kravam Посмотреть сообщение
Не может же это быть простым недосмотром.
Это не недосмотр, а парадигма. Выносим в библиотеки функциональность, а язык предоставляет только базовые возможности. А коль скоро библиотека отдельно, а язык отдельно, то и исключений никаких быть не может. Особенно таких жутких, как предложенное.

Добавлено через 2 минуты
Цитата Сообщение от kravam Посмотреть сообщение
Пример: у меня в ту же библиотеку wx ЖЁСТКО зашит макрос UNICODE И никак его не отменить. Вот то есть никак. Вот то есть изначально компилятор сделан ТАК. То есть они как хотят так и делают.)
Причем тут компилятор, опять же? Макрос зашит при компиляции (конфигурации) библиотеки wx. Я же тебе про это писал. Если очень необходимо его отменить, то нужно перекомпилировать библиотеку wx (между прочим этим же компилятором) без флага UNICODE (и об этом я тоже писал). Это все область ответственности конкретной библиотеки, а не компилятора.
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 20:21  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Только если он есть и вызван в коде.
Ну я имел ввиду он всегда добавляется компилятором по умолчанию.

Цитата Сообщение от 0x10 Посмотреть сообщение
Он не встроен в компилятор.
Ну может быть не встроен, я не знаю, может нет таких способов определить. А может есть. Ладно, не буду настаивать, невежество своё показывать не буду. Я и так устал уже. А ещё куча вопросов нерешённых. Поехали разбираться с delete:

/////////////////////////////////////////////////////////

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class x
{
 public:
 x () {}
 x (const x&)=delete;
};
 
 
int main()
{
 x x_0;
 x x_1(x_0);
}
C:\mingw32\bin>g++.exe main.cpp
main.cpp:9:15: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++
11
x (const x&)=delete;
^
main.cpp: In function 'int main()':
main.cpp:16:11: error: use of deleted function 'x::x(const x&)'
x x_1(x_0);
^
main.cpp:9:2: note: declared here
x (const x&)=delete;
^

C:\mingw32\bin>
Я, грешник, частенько игнорирую предупреждения, но не в этот раз. Перевёл как: функции по умолчанию и удалённые доступны только с параметром -std=c++11 or -std=gnu++11

Так это всё-таки они доступны (пусть даже ТОЛЬКО с этим опциями)? Проверить не могу, 4.9.1 эти опции игнорирует...
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 20:23
Цитата Сообщение от kravam Посмотреть сообщение
Так это всё-таки они доступны (пусть даже ТОЛЬКО с этим опциями)?
Возможность удаления функций доступна с опцией -std=c++11

Добавлено через 35 секунд
Цитата Сообщение от kravam Посмотреть сообщение
Ну может быть не встроен, я не знаю, может нет таких способов определить.
Открыть заголовочный файл и убедиться, что это обычный библиотечный код.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 20:27  [ТС]
ПРошу прощения, зарапортовался я, всё нормально в этой части.
C++
1
2
3
4
5
6
7
8
9
10
C:\mingw32\bin>g++.exe main.cpp -std=c++11
main.cpp: In function 'int main()':
main.cpp:12:11: error: use of deleted function 'x::x(const x&)'
  x x_1(x_0);
           ^
main.cpp:5:2: note: declared here
  x (const x&)=delete;
  ^
 
C:\mingw32\bin>
ругается, как и ДОЛЖЕН ругаться.

Добавлено через 3 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
Открыть заголовочный файл и убедиться, что это обычный библиотечный код.
В заголовочном я вряд ли увижу код!
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 20:31
Цитата Сообщение от kravam Посмотреть сообщение
В заголовочном я вряд ли увижу код!
Да ладно? https://gcc.gnu.org/onlinedocs... ource.html
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.09.2014, 20:41  [ТС]
Ты хочешь сказать, всё это хозяйство всякий раз перекомпилируется? Я думал всё уже скомпилено, линковщик линкует только и всё.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.09.2014, 20:44
Цитата Сообщение от kravam Посмотреть сообщение
Ты хочешь сказать, всё это хозяйство всякий раз перекомпилируется?
STL вся на шаблонах, а шаблоны нельзя скомпилировать и уложить в объектный файл, поскольку в точке инстанцирования нужно полное определение.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2014, 20:44

gcc компилятор
есть код программы:#include &lt;limits&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include &lt;string&gt; #include...

Компилятор gcc 4.8.1 не поддереживает C++11
Вот скрин с примером

Не корректно работает компилятор gcc
изучаю язык си на линуксе. компилятор gcc. пишу простые программки. при вызове scanf ввожу значения и жму энтер, но он никак не реагирует,...

компилятор GCC парит мозг
Вообщем проблема в том что кнопки - и + как-бы работают, но в переменную Pzad_prog постоянно подтягивается значение из еепрома из обработки...

В проекте VS2012 компилятор игнорирует конструкторы классов
Компилятор отлично компилирует проект и не выдаёт ошибок, но при генерации DEBUG версии и надо полагать и RELEASE не работают конструкторы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru