Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование[10]

Перепись  

313 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

первый рабочий день начался через лысого из бразерс, прикольна

 

  Показать содержимое

image.png.f4e894c5d1450aa3ac979dcabb56c9b1.png

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 19 часов назад:

подозреваю, что в команде я.драйва есть семимесячные

 

при ограничении в 40, считают предупреждением скорость в 50. поток едет 60-70-80. и тут такой я пук пук на 40 -> собираю хвост -> хвост нервничает -> идёт на обгон. короче езда медленнее потока приводит к дополнительным рискам для меня и для окружающих. по мнению яндекса, видимо, такой подход ограничивает риски. однако, поехав со скоростью потока, можно получить предупреждение -> хуже профиль вождения -> дороже каршеринг -> вплоть до бана

 

:roflanebalo::roflanebalo::honkler:

у меня с делимобилем есть такая история

написал им пидорасы почему у меня низкий рейтинг

сказали, что я часто нарушаю и езжу 110 км/час (ездил в основном по автомагистрали)

написал им чтобы они прочитали ПДД и сказали разрабам своим, чтобы фиксили гавно накоденное

Olololnet понравилось это

Поделиться сообщением


Ссылка на сообщение

ребята крестовики, подскажите я еблан или это кристально известная особенность работы компилятора?

 

кейс такой, код только для отображения особенности

 

const std::string& GetTestString(int iStringId)
{
        static std::string strTestString;

 

        if (iStringId == 0)
                strTestString = "id0";
        else if (iStringId == 1)
                strTestString = "id1";

 

        return strTestString;
}

 

вызов кода

 

        std::string strString = GetTestString(0) + " " + GetTestString(1) + "  ";

        std::cout << strString << std::endl;

 

приведёт к выводу

Скрытый текст

"id0 id0".

 

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

 

мне всегда в таких кейсах казалось, что компилятор поэтапно собирает временное значение, т.е. 1й вызов, образуется временная строка, где сумма этой строки плюс пробела, затем она складывается с новым вызовом getteststring, затем складывается с пробелом ещё.

 

как работает на самом деле - компилятор сначала вызывает расчёт GetTestString(0) и GetTestString(1) и только затем начинает собирать данные. в связи с тем, что там возврат ссылки, второй вызов перезапишет результаты первого и гг вп.

 

так я еблан или такое "все знают" :monkamega:

 

 

Поделиться сообщением


Ссылка на сообщение
Lotus написал 1 час назад:
Olololnet написал 20 часов назад:

подозреваю, что в команде я.драйва есть семимесячные

 

при ограничении в 40, считают предупреждением скорость в 50. поток едет 60-70-80. и тут такой я пук пук на 40 -> собираю хвост -> хвост нервничает -> идёт на обгон. короче езда медленнее потока приводит к дополнительным рискам для меня и для окружающих. по мнению яндекса, видимо, такой подход ограничивает риски. однако, поехав со скоростью потока, можно получить предупреждение -> хуже профиль вождения -> дороже каршеринг -> вплоть до бана

 

:roflanebalo::roflanebalo::honkler:

у меня с делимобилем есть такая история

написал им пидорасы почему у меня низкий рейтинг

сказали, что я часто нарушаю и езжу 110 км/час (ездил в основном по автомагистрали)

написал им чтобы они прочитали ПДД и сказали разрабам своим, чтобы фиксили гавно накоденное

по моему с точки зрения закона это нарушение, другое дело - что за него не штрафуют если не вылез за 20км/ч порог

Поделиться сообщением


Ссылка на сообщение

Почему хохлятские хр так выебываются? Типа вакансия на hh из минска написана на русском, если же хохлятская, то все на инглише будет


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

а ты сравни IT зп в Украине и Беларуси 
может чето поймешь

Поделиться сообщением


Ссылка на сообщение
ars0k написал 10 минут назад:
Lotus написал 1 час назад:
Olololnet написал 21 час назад:

подозреваю, что в команде я.драйва есть семимесячные

 

при ограничении в 40, считают предупреждением скорость в 50. поток едет 60-70-80. и тут такой я пук пук на 40 -> собираю хвост -> хвост нервничает -> идёт на обгон. короче езда медленнее потока приводит к дополнительным рискам для меня и для окружающих. по мнению яндекса, видимо, такой подход ограничивает риски. однако, поехав со скоростью потока, можно получить предупреждение -> хуже профиль вождения -> дороже каршеринг -> вплоть до бана

 

:roflanebalo::roflanebalo::honkler:

у меня с делимобилем есть такая история

написал им пидорасы почему у меня низкий рейтинг

сказали, что я часто нарушаю и езжу 110 км/час (ездил в основном по автомагистрали)

написал им чтобы они прочитали ПДД и сказали разрабам своим, чтобы фиксили гавно накоденное

по моему с точки зрения закона это нарушение, другое дело - что за него не штрафуют если не вылез за 20км/ч порог

110 км/ч по автомагистрали можно, вне города 90 км/ч

ты случайно не из делимобиля??? :palevojein:

Поделиться сообщением


Ссылка на сообщение
Lotus написал Только что:
ars0k написал 13 минут назад:
Lotus написал 1 час назад:
Olololnet написал 21 час назад:

подозреваю, что в команде я.драйва есть семимесячные

 

при ограничении в 40, считают предупреждением скорость в 50. поток едет 60-70-80. и тут такой я пук пук на 40 -> собираю хвост -> хвост нервничает -> идёт на обгон. короче езда медленнее потока приводит к дополнительным рискам для меня и для окружающих. по мнению яндекса, видимо, такой подход ограничивает риски. однако, поехав со скоростью потока, можно получить предупреждение -> хуже профиль вождения -> дороже каршеринг -> вплоть до бана

 

:roflanebalo::roflanebalo::honkler:

у меня с делимобилем есть такая история

написал им пидорасы почему у меня низкий рейтинг

сказали, что я часто нарушаю и езжу 110 км/час (ездил в основном по автомагистрали)

написал им чтобы они прочитали ПДД и сказали разрабам своим, чтобы фиксили гавно накоденное

по моему с точки зрения закона это нарушение, другое дело - что за него не штрафуют если не вылез за 20км/ч порог

110 км/ч по автомагистрали можно, вне города 90 км/ч

ты случайно не из делимобиля??? :palevojein:

ну типо 110кмч ограничение на автомагистрали, если ты едешь 120-125 ты нарушаешь пдд, но санкций за это не следует из-за нештрафуемого порога

 

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 52 минуты назад:

 

так я еблан или такое "все знают" :monkamega:

https://en.cppreference.com/w/cpp/language/eval_order

 

У тебя дичайший говно код, не нужно такое писать. Це пиздец.

Возвращац const char * на литерал если не можешь даже to_chars себе позволить. Вызывающий там дальше сам разбереться че ему нужно сделать.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 35 минут назад:

 

У тебя дичайший говно код, не нужно такое писать. Це пиздец.

код иллюстрирует только идею и не более. он не рабочий / не тестовый. это же очевидно :roflanebalo:

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 1 час назад:

так я еблан или такое "все знают" :monkamega:

Чел, это пиздец, не пиши никогда так. А вообще есть порядок выполнения операций. И функции я думаю имеют больший приоритет, чем сложение (не уверен, так как не пишу говно, расчитывающее на подобное)

Olololnet написал 33 минуты назад:
GoldRobot написал 1 час назад:

 

У тебя дичайший говно код, не нужно такое писать. Це пиздец.

код иллюстрирует только идею и не более. он не рабочий / не тестовый. это же очевидно :roflanebalo:

Ну так приведи кусок рабочего кода. Голдробот за буханку хлеба тебе все оптимизирует. Ты знаешь, что у него зп - 60 тыщ?

GoldRobot понравилось это

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 34 минуты назад:

(не уверен, так как не пишу говно, расчитывающее на подобное)

объект вывода << получить_говнямбу() << "строка" << получить_говнямбу() и т.п. - нормально встречаемый код. в том числе с лекции полухина (скажи ему, что он говнокодерок)

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 13 минут назад:
Grohuf написал 48 минут назад:

(не уверен, так как не пишу говно, расчитывающее на подобное)

объект вывода << получить_говнямбу() << "строка" << получить_говнямбу() и т.п. - нормально встречаемый код. в том числе с лекции полухина (скажи ему, что он говнокодерок)

Чел, https://en.cppreference.com/w/cpp/language/operator_precedence

это вроде должен знать каждый. Сначала выполняются функции, потом операторы сложения.

В ту хуйню, что скинул голдробот, даже погружаться не хочется. Если дело дошло до нее (что не твой случай), значит код пиздец говно.

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 2 минуты назад:

это вроде должен знать каждый.

))))

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 5 минут назад:
Grohuf написал 9 минут назад:

это вроде должен знать каждый.

))))

Ну я помню только в общих чертах что раньше чего, но если какая-то хуйня вроде *&ololol->test[10](5) то придется лезть в мануал

Поделиться сообщением


Ссылка на сообщение
Olololnet написал 28 минут назад:

объект вывода << получить_говнямбу() << "строка" << получить_говнямбу() и т.п. - нормально встречаемый код. в том числе с лекции полухина (скажи ему, что он говнокодерок)

Заметь, у него "получить_говнямбу", а у тебя фактически "модифицировать_и_получить_реф_на_сиглтон".

Чуешь разницу?


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
Olololnet said 3 hours ago:

мне всегда в таких кейсах казалось, что компилятор поэтапно собирает временное значение, т.е. 1й вызов, образуется временная строка, где сумма этой строки плюс пробела, затем она складывается с новым вызовом getteststring, затем складывается с пробелом ещё.

 

как работает на самом деле - компилятор сначала вызывает расчёт GetTestString(0) и GetTestString(1) и только затем начинает собирать данные. в связи с тем, что там возврат ссылки, второй вызов перезапишет результаты первого и гг вп.

 

так я еблан или такое "все знают" :monkamega:

не совсем

std::string strString = std::operator+(std::operator+(std::operator+(GetTestString(0), " "), GetTestString(1)), "  ");

компилятор собирает временные строки, только вот очередь вычисления отдана на усмотрение компилятора, единственное условие - подсчитать все аргументы до вызова функции. А так как ты возвращаешь ссылку на один и тот же объект, то есть шанс что одно посчитается раньше другого и перезапишется. clang выводит id0 id1, gcc - id0 id0


^ↀᴥↀ^

OblongCarelessKitfox.gif

Поделиться сообщением


Ссылка на сообщение
KaRniZZZ написал 1 минуту назад:
Olololnet написал 3 часа назад:

мне всегда в таких кейсах казалось, что компилятор поэтапно собирает временное значение, т.е. 1й вызов, образуется временная строка, где сумма этой строки плюс пробела, затем она складывается с новым вызовом getteststring, затем складывается с пробелом ещё.

 

как работает на самом деле - компилятор сначала вызывает расчёт GetTestString(0) и GetTestString(1) и только затем начинает собирать данные. в связи с тем, что там возврат ссылки, второй вызов перезапишет результаты первого и гг вп.

 

так я еблан или такое "все знают" :monkamega:

не совсем


std::string strString = std::operator+(std::operator+(std::operator+(GetTestString(0), " "), GetTestString(1)), "  ");

компилятор собирает временные строки, только вот очередь вычисления отдана на усмотрение компилятора, единственное условие - подсчитать все аргументы до вызова функции. А так как ты возвращаешь ссылку на один и тот же объект, то есть шанс что одно посчитается раньше другого и перезапишется. clang выводит id0 id1, gcc - id0 id0

спасибо за норм ответ. а то немного душно стало от всезнающих, всё уже увидевших в бесконечных нюансах языка/компилятора.

 

то что clang другой ответ даёт, это интересно.

Поделиться сообщением


Ссылка на сообщение

Хмм, я так подумал, если написать:

(a || b) && (c || d)

то если первая скобка будет ложной, то вторую компилятор может и не посчитать. То есть выходит все-таки был прав голдробот со своей ссылкой. Почему он работает за 60 тысяч?

Поделиться сообщением


Ссылка на сообщение

Найми голдробота за 80 тыщ делать твою работу

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...