- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
// File.cpp
QString File::size() const
{
return QString::number(QFileInfo(m_path).size());
}
// ... somewhere in the code...
File* message = ...
...
if (message->size() == "0")
return;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
// File.cpp
QString File::size() const
{
return QString::number(QFileInfo(m_path).size());
}
// ... somewhere in the code...
File* message = ...
...
if (message->size() == "0")
return;
Commit b1aef142 "Refactoring"
Р - Рефакторинг
+4
Java говно
+4
this.checkArrayErrors() ? (this.canSend = true) : (this.canSend = false);
Код разраба, который не прошел испытательный срок и сказал что к нему придираются.
+4
private async Task CountResultAsync(IProgress<bool> progress)
{
object sync = new object();
await Task.Run(() => Parallel.For(0, _dataList.Count, i =>
{
lock (sync)
{
var index = _dataList.FindIndex(m => m.FullPath.Equals(_dataList[i].FullPath));
_dataList[index] = new GridModel()
{
FullPath = _dataList[i].FullPath,
Name = _dataList[i].Name,
Checksum = GetFileChecksum(_dataList[i].FullPath),
IsCompleted = true
};
}
}));
}
Когда кто-то пытается написать параллельный код, но что-то идет не так.
+4
&НаКлиенте
Процедура Расчитать(Команда)
ТекДата = ТекущаяДата();
ТекМесяц = Месяц(ТекДата);
МесяцРождения = Месяц(ДатаРождения);
Если ТекМесяц=МесяцРождения Тогда //День рождения сегодня или в этом месяце,
Если День(ТекДата)=День(ДатаРождения) Тогда
КоличествоДнейДоДР = 0;
ИначеЕсли День(ТекДата)<День(ДатаРождения) Тогда
КоличествоДнейДоДР = День(ДатаРождения)-День(ТекДата);
Иначе
КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
Дата = ДобавитьМесяц(ТекДата,1);
Ограничитель = (12-ТекМесяц)+МесяцРождения;
Для сч=1 По Ограничитель Цикл
Если сч=Ограничитель Тогда
КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
продолжить;
КонецЕсли;
КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
Дата = ДобавитьМесяц(Дата,1);
КонецЦикла;
КонецЕсли;
ИначеЕсли ТекМесяц<МесяцРождения Тогда //День рождения еще не наступил,
КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
Дата = ДобавитьМесяц(ТекДата,1);
Для сч= ТекМесяц+1 По МесяцРождения Цикл
Если сч=МесяцРождения Тогда
КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
продолжить;
КонецЕсли;
КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
Дата = ДобавитьМесяц(Дата,1);
КонецЦикла;
ИначеЕсли ТекМесяц>МесяцРождения Тогда //День рождения уже прошел.
КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
Дата = ДобавитьМесяц(ТекДата,1);
Ограничитель = (12-ТекМесяц)+МесяцРождения;
Для сч= 1 По Ограничитель Цикл
Если сч=Ограничитель Тогда
КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
продолжить;
КонецЕсли;
КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
Дата = ДобавитьМесяц(Дата,1);
КонецЦикла;
КонецЕсли;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = КоличествоДнейДоДР;
Сообщение.Сообщить();
// Вставить содержимое обработчика.
КонецПроцедуры
Задача рассчитать количество дней до дня рождения, вопрос в том что не много ли я использовал условий Если?
+4
#include <iostream>
#include <string>
#include <string_view>
int main() {
std::string s = "Hellooooooooooooooo ";
std::string_view sv = s + "World\n";
std::cout << sv;
}
https://alexgaynor.net/2019/apr/21/modern-c++-wont-save-us/
What's happening here is that s + "World\n" allocates a new std::string, and then is converted to a std::string_view. At this point the temporary std::string is freed, but sv still points at the memory that used to be owned by it. Any future use of sv is a use-after-free vulnerability. Oops! C++ lacks the facilities for the compiler to be aware that sv captures a reference to something where the reference lives longer than the referent. The same issue impacts std::span, also an extremely modern C++ type.
+4
#include <inttypes.h>
auto a(auto b) __attribute__ ((noinline));
auto a(auto b)
{
return b*1.5;
}
double test1(double in)
{
return a(in);
}
uint64_t test2(uint64_t in)
{
return a(in);
}
/*
https://godbolt.org/z/6ZQAnv
auto a<double>(double):
mulsd xmm0, QWORD PTR .LC0[rip]
ret
test1(double):
jmp auto a<double>(double)
auto a<unsigned long>(unsigned long):
test rdi, rdi
js .L5
pxor xmm0, xmm0
cvtsi2sd xmm0, rdi
mulsd xmm0, QWORD PTR .LC0[rip] # хули ты мне плавучего питуха в xmm0 возвращаешь?
ret
.L5:
mov rax, rdi
and edi, 1
pxor xmm0, xmm0
shr rax
or rax, rdi
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
mulsd xmm0, QWORD PTR .LC0[rip]
ret
test2(unsigned long):
sub rsp, 8
call auto a<unsigned long>(unsigned long)
movsd xmm1, QWORD PTR .LC1[rip]
comisd xmm0, xmm1
jnb .L8
cvttsd2si rax, xmm0 # ну нахуй тут надо double в uint64_t конвертить
add rsp, 8 # почему это не делается в auto a<unsigned long>(unsigned long)
ret
.L8:
subsd xmm0, xmm1
add rsp, 8
cvttsd2si rax, xmm0
btc rax, 63
ret
.LC0:
.long 0
.long 1073217536
.LC1:
.long 0
.long 1138753536
*/
концепты-хуепты
+4
struct Data { /* ... */ };
class Items {
void insert(Data&& data) {
_storage.emplace_back(std::forward<Data>(data));
}
private:
std::vector<Data> _storage;
};
Dumb luck. Nuff said.
+4
Yandere Simulator
https://f0ck.me/b/09d3f680.mp4
+4
Если ЭтаФорма.ВладелецФормы.ВладелецФормы.Объект.Заголовок = "Согласование контрагента " Или ЭтаФорма.ВладелецФормы.ВладелецФормы.Объект.Заголовок = "" Тогда
ЭтаФорма.ВладелецФормы.ВладелецФормы.Объект.Заголовок = "Согласование контрагента " + КонтрагентДО;
КонецЕсли;
Просто оставлю это здесь.
Когда ж вы все передохните любители ВладельцевФормы через ВладельцаФормы.