Jump to content
  • Sign Up
  • Recently Browsing   Total Users: 4   (0 members, 4 Guests)

Rooster

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

Перепись  

313 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

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

 

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

image.png.f4e894c5d1450aa3ac979dcabb56c9b1.png

Share this post


Link to post
Olololnet написал 19 часов назад:

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

 

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

 

:roflanebalo::roflanebalo::honkler:

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

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

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

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

Olololnet likes this

Share this post


Link to post

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

 

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

 

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:

 

 

Share this post


Link to post
Lotus написал 1 час назад:
Olololnet написал 20 часов назад:

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

 

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

 

:roflanebalo::roflanebalo::honkler:

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

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

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

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

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

Share this post


Link to post

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


 

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

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

 

Share this post


Link to post

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

Share this post


Link to post
ars0k написал 10 минут назад:
Lotus написал 1 час назад:
Olololnet написал 21 час назад:

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

 

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

 

:roflanebalo::roflanebalo::honkler:

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

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

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

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

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

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

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

Share this post


Link to post
Lotus написал Только что:
ars0k написал 13 минут назад:
Lotus написал 1 час назад:
Olololnet написал 21 час назад:

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

 

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

 

:roflanebalo::roflanebalo::honkler:

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

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

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

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

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

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

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

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

 

Share this post


Link to post
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:

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

 

Share this post


Link to post
GoldRobot написал 35 минут назад:

 

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

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

Share this post


Link to post
Olololnet написал 1 час назад:

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

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

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

 

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

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

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

GoldRobot likes this

Share this post


Link to post
Grohuf написал 34 минуты назад:

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

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

Share this post


Link to post
Olololnet написал 13 минут назад:
Grohuf написал 48 минут назад:

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

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

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

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

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

Share this post


Link to post
Grohuf написал 2 минуты назад:

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

))))

Share this post


Link to post
Olololnet написал 5 минут назад:
Grohuf написал 9 минут назад:

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

))))

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

Share this post


Link to post
Olololnet написал 28 минут назад:

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

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

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


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

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

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

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

 

Share this post


Link to post
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

Share this post


Link to post
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 другой ответ даёт, это интересно.

Share this post


Link to post

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

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

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

Share this post


Link to post
Guest
This topic is now closed to further replies.

×
×
  • Create New...