- 1
- 2
- 3
- 4
- 5
- 6
ostringstream s;
...
- return s.str();
+ return std::move(s.str());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+5
ostringstream s;
...
- return s.str();
+ return std::move(s.str());
соптимизировано
−98
ЭтоДокумент = Метаданные.Документы.Содержит(ЭтотОбъект.Метаданные())
Примечательно, что вызывается из модуля формы документа, больше нигде процедура с ЭТИМ не используется.
В документе проверяем, что это документ :/
−99
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Объект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код,
| Номенклатура.Ссылка КАК Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.НоменклатурнаяГруппа.Ссылка = &НоменклатурнаяГруппа
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура";
ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
СписокГруппы.Загрузить(ТаблицаТоваров);
БП 3.0.43.174 (но не только), типовое заполнение формы номенклатурной группы номенклатурой.
0
using Microsoft.VisualBasic.CompilerServices;
using System;
namespace ConsoleApplication2
{
[StandardModule]
internal sealed class Module1
{
[STAThread]
public static void Main()
{
label_0:
int num1;
int num2;
try
{
ProjectData.ClearProjectError();
num1 = 1;
label_1:
int num3 = 2;
Test.TTT();
goto label_8;
label_3:
num2 = num3;
switch (num1)
{
case 1:
int num4 = num2 + 1;
num2 = 0;
switch (num4)
{
case 1:
goto label_0;
case 2:
goto label_1;
case 3:
case 4:
goto label_8;
}
}
}
catch (Exception ex) when (ex is Exception & (uint) num1 > 0U & num2 == 0)
{
ProjectData.SetProjectError(ex);
goto label_3;
}
throw ProjectData.CreateProjectError(-2146828237);
label_8:
if (num2 == 0)
return;
ProjectData.ClearProjectError();
}
}
}
Вот какая жуть получилась при декомпиляции старого доброго On Error Resume Next из VB.
Исходный код:
Sub Main()
On Error Resume Next
TTT() 'определен в модуле Test
Exit Sub
End Sub
+2
int CHud :: DrawHudNumber( int x, int y, int iFlags, int iNumber, int r, int g, int b)
{
int iWidth = GetSpriteRect(m_HUD_number_0).right - GetSpriteRect(m_HUD_number_0).left;
int k;
if (iNumber > 0)
{
// SPR_Draw 100's
if (iNumber >= 100)
{
k = iNumber/100;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & (DHN_3DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw 10's
if (iNumber >= 10)
{
k = (iNumber % 100)/10;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw ones
k = iNumber % 10;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive(0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & DHN_DRAWZERO)
{
SPR_Set(GetSprite(m_HUD_number_0), r, g, b );
// SPR_Draw 100's
if (iFlags & (DHN_3DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw ones
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0));
x += iWidth;
}
return x;
}
int CHud::GetNumWidth( int iNumber, int iFlags )
{
if (iFlags & (DHN_3DIGITS))
return 3;
if (iFlags & (DHN_2DIGITS))
return 2;
if (iNumber <= 0)
{
if (iFlags & (DHN_DRAWZERO))
return 1;
else
return 0;
}
if (iNumber < 10)
return 1;
if (iNumber < 100)
return 2;
return 3;
}
Программишка, я тут тебе принёс ещё кода из Half-Life 1.
https://github.com/ValveSoftware/halflife/blob/master/cl_dll/hud_redraw.cpp#L252
Собственно, что код-то делает? Рисует спрайты с циферками. Те, что показывают текущее количество HP, брони, амуниции.
−3
bool* sdvig_vpravo(bool* mas) {
if (mas[0] == 1 && mas[1] == 0 && mas[2] == 0) {
mas[0] = 0;
mas[1] = 1;
mas[2] = 0;
}
else if (mas[0] == 0 && mas[1] == 1 && mas[2] == 0) {
mas[0] = 0;
mas[1] = 0;
mas[2] = 1;
}
else if (mas[0] == 0 && mas[1] == 0 && mas[2] == 1) {
mas[0] = 1;
mas[1] = 0;
mas[2] = 0;
}
return mas;
}
Кольцевой сдвиг на один элемент булевского массива размерности 3. Возможно удивитесь, но этот великий костыль я сотворил на полном серьезе.
+5
Action doItWrong;
var filename = "sdf";
using (var fileStream = new FileStream(filename,FileMode.Create))
{
doItWrong=()=>
{
for(int i = 0; i < 10; i++)
{
fileStream.WriteByte(255);
}
};
}
doItWrong();
Интересно, почему такое вообще не запрещают компилировать?
+2
//получаем Элемент
$resource = CIBlockElement::GetByID($Bid);
if ($ob = $resource->GetNextElement())
{
//вытягиваем поля, свойства
$arFields = $ob->GetFields();
$arFields['PROPERTIES'] = $ob->GetProperties();
// удаляем все поля, нахрен мы их вообще выдергивали
$arFieldsCopy = $arFields;
unset(
$arFieldsCopy['ID'],
$arFieldsCopy['~ID'],
$arFieldsCopy['IBLOCK_SECTION_ID'],
$arFieldsCopy['~IBLOCK_SECTION_ID'],
$arFieldsCopy['TIMESTAMP_X'],
$arFieldsCopy['~TIMESTAMP_X'],
$arFieldsCopy['ACTIVE_TO'],
$arFieldsCopy['~ACTIVE_TO'],
$arFieldsCopy['DATE_ACTIVE_TO'],
$arFieldsCopy['~DATE_ACTIVE_TO'],
$arFieldsCopy['PREVIEW_PICTURE'],
$arFieldsCopy['~PREVIEW_PICTURE'],
$arFieldsCopy['PREVIEW_TEXT'],
$arFieldsCopy['~PREVIEW_TEXT'],
$arFieldsCopy['DETAIL_PICTURE'],
$arFieldsCopy['~DETAIL_PICTURE'],
$arFieldsCopy['DETAIL_TEXT'],
$arFieldsCopy['~DETAIL_TEXT'],
$arFieldsCopy['XML_ID'],
$arFieldsCopy['~XML_ID'],
$arFieldsCopy['EXTERNAL_ID'],
$arFieldsCopy['~EXTERNAL_ID'],
$arFieldsCopy['TMP_ID'],
$arFieldsCopy['~TMP_ID'],
$arFieldsCopy['CODE'],
$arFieldsCopy['~CODE'],
$arFieldsCopy['SEARCHABLE_CONTENT'],
$arFieldsCopy['~SEARCHABLE_CONTENT'],
$arFieldsCopy['WF_LAST_HISTORY_ID'],
$arFieldsCopy['~WF_LAST_HISTORY_ID'],
$arFieldsCopy['WF_COMMENTS'],
$arFieldsCopy['~WF_COMMENTS'],
$arFieldsCopy['WF_DATE_LOCK'],
$arFieldsCopy['~WF_DATE_LOCK'],
$arFieldsCopy['WF_LOCKED_BY'],
$arFieldsCopy['~WF_LOCKED_BY'],
$arFieldsCopy['WF_NEW'],
$arFieldsCopy['~WF_NEW'],
$arFieldsCopy['WF_PARENT_ELEMENT_ID'],
$arFieldsCopy['~WF_PARENT_ELEMENT_ID'],
$arFieldsCopy['SHOW_COUNTER'],
$arFieldsCopy['~SHOW_COUNTER'],
$arFieldsCopy['TAGS'],
$arFieldsCopy['~TAGS'],
$arFieldsCopy['LOCKED_USER_NAME'],
$arFieldsCopy['~LOCKED_USER_NAME'],
$arFieldsCopy['SHOW_COUNTER_START'],
$arFieldsCopy['~SHOW_COUNTER_START']
);
$arFieldsCopy['ACTIVE']='N';
$arFieldsCopy['ACTIVE_FROM']=date('d.m.Y');
/*... тра тра та заполняю я поля ....*/
$arFieldsCopy['PROPERTY_VALUES'] = [
/* ... тра та та,
тра та та,
заполняю свойства я
...
*/
];
/*
... Продолжая песню петь
удалю я все теперь
...
*/
unset($arFieldsCopy['PROPERTIES']);
// кульминация пьесы, добавление нового Элемента
$el = new CIBlockElement();
$NEW_BID_ID = $el->Add($arFieldsCopy);
}
Эм.... толи память экономит, то ли оплата за код построчно ....
−99
КолонкаTMCID=ТаблицаСЗаказ.колонки.TMCID;
КолонкаTMCID.ТекстШапки = "№ тов.";
КолонкаTMCID.толькоПросмотр = Истина;
КолонкаTMCID.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
КолонкаType=ТаблицаСЗаказ.колонки.Type;
КолонкаType.ТекстШапки = "Тип этикетки";
КолонкаType.толькоПросмотр = Истина;
КолонкаType.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
КолонкаName=ТаблицаСЗаказ.колонки.Name;
КолонкаName.ТекстШапки = "Наименование";
КолонкаName.толькоПросмотр = Истина;
КолонкаName.Ширина = Окр(ШиринаТаблицы * 0.3, 0);
КолонкаКод=ТаблицаСЗаказ.колонки.Kod_et;
КолонкаКод.ТекстШапки = "Код этикетки";
КолонкаКод.толькоПросмотр = Истина;
КолонкаКод.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
//КолонкаSpecif=ТаблицаСЗаказ.колонки.Specif;
//КолонкаSpecif.ТекстШапки = "Спецификация заказа";
//КолонкаSpecif.толькоПросмотр = Истина;
//КолонкаSpecif.Ширина = Окр(ШиринаТаблицы * 0.11, 0);
КолонкаUnit=ТаблицаСЗаказ.колонки.Unit;
КолонкаUnit.ТекстШапки = "Ед.изм";
КолонкаUnit.толькоПросмотр = Истина;
КолонкаUnit.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
КолонкаГород = ТаблицаСЗаказ.колонки.НаправлениеНамоткиГород;
КолонкаГород.ТекстШапки = "Город";
КолонкаГород.толькоПросмотр = Истина;
КолонкаГород.Ширина = Окр(ШиринаТаблицы * 0.12, 0);
КолонкаАдрес = ТаблицаСЗаказ.Колонки.АдресДоставки;
КолонкаАдрес.ТекстШапки = "Адрес Доставки";
КолонкаАдрес.толькоПросмотр = Истина;
КолонкаАдрес.Ширина = Окр(ШиринаТаблицы * 0.12, 0);
Ну вот не в падлу людям такой код писать... Подумаешь +-10 ненужных переменных. Какой-там нахрен рефакторинг?! Делать больше нечего рефакторингом всяким занниматься. Про повторное использование кода слышали? Так вот взяли код, скопировали, вставили - там самым повторно использовали. Горите в аду, копипастеры!
0
wire tsun = clk | (~dere);
wire dere = clk | (~tsun);
always @(posedge clk) rnd <= dere;
Интересно, будет ли этот код работать как TRNG?
P.S. Узнаем на выходных, когда приедет Циклоняшка.