- 1
return StrLen((*i).second);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 188
−18
return StrLen((*i).second);
В точку.
−40
*new
Самая соль.
+135
public TOscillPanel getOscillPanel(String nameTable, XmlNodeList parameters, String idCHPU)
{
var actions=new Dictionary<string, object>
{
{"addParamOscill", new Action<string, string>(addParamOscill)},
{"removeParamOscill", new Action<string, string>(removeParamOscill)},
{"includeRealTimeMode",new Action<string>(includeRealTimeMode)}
};
return (new TOscillPanel(nameTable, parameters, actions));
}
//...
((Action<String, String>)_actions["addParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
((Action<String, String>)_actions["addParamOscill"])(_tableChpu, idParameters);
}
else
{
((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, idParameters);
}
Это практически единственные и основные упоминания в коде контейнера _actions.
Говорила же мне мама: "возьми динамически типизированный язык", а я её не слушал. Не мне конечно же. Код из очень крупного частного проекта.
Динамически типизированный язык тут конечно же не нужен. Просто создаем трудности, а потом стоически их решаем.
−36
//установка режима реализма
void includeRealTimeMode()
{
TSerialCommand^ command = gcnew TSerialCommand;
command->cmd = CMD_CONTROL;
command->sc1 = SC_REAL_TIME_MODE;
command->sc2 = NULL; //_portManager.oscillFrequency;
_portManager.sendCommand(command);
}
Команда включает (активирует) режим реального времени.
C++\CLI
−34
int ConditionsTuple(const bool Condition1, const bool Condition2)
{
return (Condition1<<1) + Condition2;
}
template <bool Condition1, bool Condition2>
struct TConditionsTuple
{
enum {Result = (Condition1<<1) + Condition2};
};
float SignedIf(const bool Condition)
{
return Condition ? -1 : 1;
}
switch (ConditionsTuple(
bExpr1,
bExpr2
))
{
case TConditionsTuple<1, 1>::Result:
return PArc(new TArc(
CouplePointAtPrimitive1,
CouplePointAtPrimitive2,
ArcCoupleCenter,
Abs(arcCoupleRadius)
));
case TConditionsTuple<0, 1>::Result:
throw TPrimitive1HalfLengthExpiredException();
case TConditionsTuple<1, 0>::Result:
throw TPrimitive2HalfLengthExpiredException();
case TConditionsTuple<0, 0>::Result:
throw TAllPrimitivesHalfLengthExpiredException();
}
−29
template<class TValueChanger>
NContour::NPrimitives::PArc ChangePrimitive(NContour::NPrimitives::PArc Arc, const TValueChanger& ValueChanger)
{
return ValueChanger(Arc);
}
template<class TValueChanger>
NContour::NPrimitives::PLine ChangePrimitive(NContour::NPrimitives::PLine Line, const TValueChanger& ValueChanger)
{
return ValueChanger(Line);
}
template<class TValueChanger1, class TValueChanger2>
NContour::NPrimitives::PArc ChangePrimitive(NContour::NPrimitives::PArc Arc, const TValueChanger1& ValueChanger1, const TValueChanger2& ValueChanger2)
{
return ValueChanger2(ValueChanger1(Arc));
}
template<class TValueChanger1, class TValueChanger2>
NContour::NPrimitives::PLine ChangePrimitive(NContour::NPrimitives::PLine Line, const TValueChanger1& ValueChanger1, const TValueChanger2& ValueChanger2)
{
return ValueChanger2(ValueChanger1(Line));
}
//...
template<class TValueChanger1, class TValueChanger2, class TValueChanger3, class TValueChanger4, class TValueChanger5, class TValueChanger6>
NContour::NPrimitives::PArc ChangePrimitive(NContour::NPrimitives::PArc Arc, const TValueChanger1& ValueChanger1, const TValueChanger2& ValueChanger2, const TValueChanger3& ValueChanger3, const TValueChanger4& ValueChanger4, const TValueChanger5& ValueChanger5, const TValueChanger6& ValueChanger6)
{
return ValueChanger6(ValueChanger5(ValueChanger4(ValueChanger3(ValueChanger2(ValueChanger1(Arc))))));
}
template<class TValueChanger1, class TValueChanger2, class TValueChanger3, class TValueChanger4, class TValueChanger5, class TValueChanger6>
NContour::NPrimitives::PLine ChangePrimitive(NContour::NPrimitives::PLine Line, const TValueChanger1& ValueChanger1, const TValueChanger2& ValueChanger2, const TValueChanger3& ValueChanger3, const TValueChanger4& ValueChanger4, const TValueChanger4& ValueChanger5, const TValueChanger6& ValueChanger6)
{
return ValueChanger6(ValueChanger5(ValueChanger4(ValueChanger3(ValueChanger2(ValueChanger1(Line))))));
}
−23
std::bad_alloc e;
throw std::move(e);
Написал один новичок. Говорит это особая сильно ускоряющая оптимизация.
−19
TElement* get(void)
{
TElement* result = this->allocateBuffer();
if (result!=NULL)
{
try
{
::new(result) TElement; //Вызов конструктора.
}catch(...)//Получили исключение в конструкторе конструироваемого объекта.
{
this->deallocateBuffer(result);
throw;
};
};
return result;
};
template<class TArg1>
TElement* get(TArg1 arg1)
{
TElement* result = this->allocateBuffer();
if (result!=NULL)
{
try
{
::new(result) TElement(arg1); //Вызов конструктора.
}catch(...)//Получили исключение в конструкторе конструироваемого объекта.
{
this->deallocateBuffer(result);
throw;
};
};
return result;
};
//...
template<class TArg1, class TArg2, class TArg3, class TArg4, class TArg5, class TArg6>
TElement* get(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
{
TElement* result = this->AllocateBuffer();
if (result!=NULL)
{
try
{
::new(result) TElement(arg1, arg2, arg3, arg4, arg5, arg6); //Вызов конструктора.
}catch(...)//Получили исключение в конструкторе конструироваемого объекта.
{
this->DeallocateBuffer(result);
throw;
};
};
return result;
};
Хотя этот баян мы уже видели на Action Script.
−22
class TFunctorMap
{
public:
typedef bool (*TFunctor)(const TSentenceList&, unsigned short &);
private:
std::map<char, TFunctor> _functorMap;
public:
TFunctorMap(void)
{
_functorMap.insert(std::make_pair('g', &RZC));
_functorMap.insert(std::make_pair('t', &STN));
_functorMap.insert(std::make_pair('d', &RTC));
}
TFunctor GetFunctor(const char Key)
{
if (_functorMap.find(Key) == _functorMap.end())
return NULL;
return _functorMap[Key];
}
};
−24
template <bool ValueToLock>
class TBoolLocker
{
private:
bool _lockedValue;
public:
TBoolLocker(void) : _lockedValue(!ValueToLock) {}
TBoolLocker(const TBoolLocker & Copy) : _lockedValue(Copy._lockedValue) {}
const TBoolLocker & operator=(const TBoolLocker & Copy)
{
_lockedValue = Copy._lockedValue;
return *this;
}
bool update(const bool NewValue)
{
if (_lockedValue != ValueToLock)
_lockedValue = NewValue;
return _lockedValue;
}
};