- 1
- 2
- 3
- 4
- 5
- 6
- 7
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
А что можно найти в вашей кодовой базе? К слову, выяснилось, что вариант
void operator=(const MyType&) = delete;
вполне себе допустим.
+2
typedef unsigned int uint;
uint inc(uint i) {
return i+1;
}
uint dec(uint i) {
return i-1;
}
uint add(uint a, uint b) {
return 0==b ? a : add(inc(a),dec(b));
}
inline uint _mul(uint a, uint b, uint r) {
return 0==b ? r : _mul(a,b-1,r+a);
}
uint mul(uint a, uint b) {
return _mul(a,b,0);
}
uint dec_mul(uint a, uint b, uint r) {
return 0==b ? r : dec_mul(a,dec(b),r+a);
}
//gcc 7 здесь сходит с ума на O3, шланг невозмутимо ставит imul edi, esi
uint crazy_mul(uint a, uint b, uint r) {
return 0==b ? r : crazy_mul(a,dec(b),add(r,a));
}
//арифметическая прогрессия.
inline uint _sum(uint a,uint s) {
return a==0 ? s :_sum(a-1,s+a);
}
//gcc: сложна нипанятна
uint sum(uint a) {
return _sum(a,0);
}
//шланг:
// imul rcx, rax
// shr rcx
uint sum1(uint a) {
uint s=0;
for (int i=0;i<a;++i){
s+=i;
}
return s;
}
Смотрим как компиляторы решают разные упоротые рекурентные задачки.
https://godbolt.org/g/4JZuPr
+2
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Организация1 = Справочники.Организации.ПустаяСсылка();
Организация1 = Справочники.Организации.НайтиПоНаименованию("ХХХХХ Андрей Александрович ИП");
Организация = Организация1;
ОрганизацияШапка = Организация1;
Склад = Справочники.Склады.НайтиПоНаименованию("Сервис центр");
Контрагент = Справочники.Партнеры.НайтиПоНаименованию("Розничный покупатель");
ВидОперации = Перечисления.ВидРемонта.ПлатныйРемонт;
КонецПроцедуры;
Строка 3. Непонятно для чего введена переменная Организация1 (реквизита такого нет).
Строка 3. Непонятно для чего нужна инициализация пустой ссылкой, если в следующей строке происходит присваивание другого значения.
Строка5. Почему бы сразу не инициализировать реквизит нужным значением?
+2
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ЗаказНаряд.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказНаряд КАК ЗаказНаряд
|ГДЕ
| ЗаказНаряд.Проведен = ИСТИНА";
Выборка=Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Если обЗначениеНеЗаполнено(Выборка.Ссылка) Тогда
.......
Чуть упростил запрос для быстроты понимания...
Как проверить запрос ПУСТОЙ() или нет... Вот один из разработчиков нашел метод.....
+2
local lv = {"sdds"}
lv.act = function(foo)
foo(lv)
end
function start()
local x = function(self)
print(self[1])
end
lv.act(x)
end
start()
Такой значит, насоздаешь одинаковых шаблоных хуйн, а потом по какой-то причине одна из 82837273723 хуйн должна быть уникальна какой-то неведомой хуйней и приходится в (шаблоне, но в луа нет шаблонов!) таблице прописывать половой акт самим с собой, чтоб он смог мутировать в другую отличную от других неведомых хуй. Например стать бабочкой, но тогда придется в единной функции хуярить всю бабочку, ну можно много функций! Тем не менее оригинальная неведомая хуйня не пострадает.
О здаровка
+2
public class RussianNumberUtils {
public static String getRussianNumberFormat(String number) {
StringBuilder numberBuilder = new StringBuilder();
try {
numberBuilder.append("+");
numberBuilder.append(number.charAt(0));
numberBuilder.append(" (");
numberBuilder.append(number.substring(1, 4));
numberBuilder.append(") ");
numberBuilder.append(number.substring(4, 7));
numberBuilder.append("-");
numberBuilder.append(number.substring(7, 9));
numberBuilder.append("-");
numberBuilder.append(number.substring(9, Math.max(number.length(), 11)));
return numberBuilder.toString();
} catch (Exception e) {}
return number;
}
}
Форматирование русского номера телефона
+2
Telegram - считается "секьюрным" благодаря маркетенгу, вся его безопасность
основана на закрытости протокола.
Дискач.
+2
<?php
$s = "This";
$is = "an";
$of = "a";
$ninja = "coding";
$This = "is";
$a = "ninja";
$coding = "echo";
$an = "example";
$example = "of";
${null} = ' "$s';
function z($x,$c='$'){return $x==1?$c:z($x-1,$c.'$');}
for($i=1;$i<=7;$i++){${null}.=' ${'.z($i).'s}';}
eval($$$$$$$$$s.${null}.'\n";');
/* Returns:
This is an example of a ninja coding
*/
PHP очарователен
К посту http://govnokod.ru/23540
+2
// nullable types
// C#
int?
// TypeScript
int?
// Kotlin
int?
// PHP
?int
нет мочи терпеть это дерьмо
+2
PHPAPI void php_var_export_ex(zval *struc, int level, smart_str *buf) /* {{{ */
{
/* insignificant bullshit omitted */
zend_string *ztmp, *ztmp2;
switch (Z_TYPE_P(struc)) {
case IS_STRING:
ztmp = php_addcslashes(Z_STR_P(struc), 0, "'\\", 2);
ztmp2 = php_str_to_str(ZSTR_VAL(ztmp), ZSTR_LEN(ztmp), "\0", 1, "' . \"\\0\" . '", 12);
smart_str_appendc(buf, '\'');
smart_str_append(buf, ztmp2);
smart_str_appendc(buf, '\'');
zend_string_free(ztmp);
zend_string_free(ztmp2);
break;
}
}
/* }}} */
Пыхарь: Расмус, у меня верстка едет, когда я через var_export() нулевые байты в браузер кидаю. Пофикси! (https://bugs.php.net/bug.php?id=37262)
Расмус: Пофиксил тебе за щеку. Проверяй. (https://github.com/php/php-src/blob/master/ext/standard/var.c#L482)
Пыхарь: Проверил. Помогло. (https://ideone.com/gnCKh1)