gudleifr
Это конечно говно код c очень маленьким кол-вом кода, но какой ты думаешь будет результат исполнения?
#include <cstdio> int a() { return std::puts( "a"); } int b( ) { return std::puts( "b"); } int c( ) { return std::puts( "c"); } void z( int, int, int) {} int main( ) { z( a( ), b( ), c( )); return a( ) + b( ) + c( ); }
void F1() { int i = 1; printf( "%d, %d\n", i++, i++); }
Если предыдущий пример оказался детским садом, можно рассмотреть школьный пример. Допустим ты решил сделать thread safe синглтон с двойной проверкой. Является ли нижестоящий код UB или нет? Если нет то почему? Хотя здесь все же очевидно такой код и на Jave не будет корректно робить
static Singleton & GetInstance() { if( pInstance == nullptr) { std::lock_guard<std::mutex> guard( lock); if( pInstance == nullptr) pInstance = new Singleton( ); } return *pInstance; }
IBets
> Если предыдущий пример оказался детским садом
Пардон, весь Ваш пост показался детским садом.
gudleifr
Ну так какой результат вывода? И что не так синглтоном?
IBets
> Ну так какой результат вывода?
Очевидный. Вам объяснили пару-тройку трюков, и Вы решили, что программирование, это и есть коллекционирование этих трюков. Это не Ваша вина, это примета времени, не нуждающегося в программистах:
gudleifr
Ну так для тебя очевидный, для меня нет. Если для тебя это abcabc, то мне с тобой не о чем говорить. Цитатами от старых пессеместичных дедов не плюйся, если немного посмотришь, то увидишь что системы стали гораздо сложнее
IBets
> Ну так для тебя очевидный, для меня нет.
Вывод не в том, что дала дурацкая ошибка примера, а в том, что Вы не видите за этими примерами программирования.
gudleifr
В чем это не программирование? Как можно создавать крупные системы, если не в силах разобраться в мелочах?
IBets
> В чем это не программирование?
IBets
> Как можно создавать крупные системы, если не в силах разобраться в мелочах?
А Вы уверены, что можете в них разобраться? Сможете протянуть логическую цепочку этого фокуса к устройству компилятора? И сравнить с решениями, принимаемыми другими компиляторами в данных условиях?
gudleifr
Ну так и надо разобраться как делать не надо, чтобы на всех компиляторах результат был одинаков
IBets
> Ну так и надо разобраться как делать не надо
Ну так и разбирайтесь. Открываете "университетский говнокурс" - и вперед! Других способов нет.
gudleifr
Зачем мне говнокурс, в котором этого очевидно не будет, если есть стандарт в котором описано что будет в той или иной ситуации?
gudleifr
> Зачем мне говнокурс
Чтобы разобраться "как делать не надо" и почему.
IBets
> если есть стандарт в котором описано что будет в той или иной ситуации?
Ну, например, в одном из Ваших примеров Стандарт честно отвечает: "Не знаю!".
(На самом деле я еще не видел ни одного стандарта, который бы стоил бумаги, на которой написан. Даже "Пересмотренное сообщение об Алголе-68".)
Ruru_Ferrenio
> 1. Для чего вообще нужен С++ ?
UE 4.
Ruru_Ferrenio
> 3. Стоит ли мне вдовесок к С++ осваивать еще какой-либоя язык ?
Конечно.
Оставлю это тут.
В скором времени будем набирать интернов на временную работу практику (с возможным продолжением), компания зарубежная Английская (детали в ПМ). Возможность работать на удаленке.
Стек: Linux, Stl, Boost, OpenGL ES 3.1/Vulkan, GLSL, CMake, UDP, Doctest, Docker, Jenkins, Git, Python и другие библиотеки/пакеты.
Отдельное направление это разработка Гуи и алгоритмы. Всё связано с самолётными системами.
Весь стек не нужно знать, в данном случае набор по знаниям С++ для интернов, всё остальное в бонус.
Короче, для молодых специалистов, которые входят в мир программирования С++ это неплохая возможность. Чуть позже когда будет более актуально создам отдельный пост.