-
Список говнокодов пользователя roman-kashitsyn
Всего: 101
-
+24
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
template <typename IdType, class Tag>
class id {
public:
typedef IdType value_type;
explicit id(value_type val)
: value(val)
{}
bool operator==(id rhs)
{
return rhs.value == value;
}
bool operator!=(id rhs)
{
return rhs.value != value;
}
value_type value;
};
#define HASKELL_NEWTYPE(type_name, value_type) struct __##type_name##_tag__ {}; \
typedef ::id<value_type, __##type_name##_tag__> type_name
Когда newtype нет, но очень хочется.
http://ideone.com/VRu56j
Простите за синтетику
roman-kashitsyn,
14 Февраля 2013
-
+113
- 1
- 2
- 3
- 4
- 5
private int GenerateRandom(int MaxValue)
{
var mas = Guid.NewGuid().ToByteArray();
return BitConverter.ToInt32(mas, 4) % MaxValue;
}
....
roman-kashitsyn,
28 Января 2013
-
+15
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
/**
* @brief Serializer generic interface.
*/
template<typename ValueType>
struct serializer
{
/**
* @brief Parses value from raw bytes.
* @param from byte buffer parse value from
*/
static ValueType parse(uint8_t *from);
/**
* @brief Writes value to raw byte buffer.
* @param value value to write
* @param dest destination buffer
*/
static void write(ValueType value, uint8_t *dest);
};
template<>
struct serializer<uint8_t>
{
static uint8_t parse(uint8_t *from)
{
return *from;
}
static void write(const uint8_t value, uint8_t *to)
{
*to = value;
}
};
template<>
struct serializer<uint16_t>
{
static uint16_t parse(uint8_t *from)
{
return (uint16_t)from[0] << 8 | from[1];
}
static void write(const uint16_t value, uint8_t *to)
{
to[0] = (value >> 8);
to[1] = value & 0xff;
}
};
template<>
struct serializer<uint32_t>
{
static uint32_t parse(uint8_t *from)
{
return from[0] << 24 | from[1] << 16 | from[2] << 8 | from[3];
}
static void write(const uint32_t value, uint8_t *to)
{
serializer<uint16_t>::write(value >> 16, to);
serializer<uint16_t>::write(value & 0xffff, to + 2);
}
};
template<>
struct serializer<uint64_t>
{
static uint64_t parse(uint8_t *from)
{
const uint32_t high = serializer<uint32_t>::parse(from);
const uint32_t low = serializer<uint32_t>::parse(from + 4);
return ((uint64_t) high << 32) | low;
}
static void write(const uint64_t value, uint8_t *to)
{
serializer<uint32_t>::write(value >> 32, to);
serializer<uint32_t>::write(value & 0xffffffff, to + 4);
}
};
Тут поднялась тема неуместного битолюбства... Решил поделиться одним из моих первых крестОпусов.
"кроссплатформенный hton(sl)".
roman-kashitsyn,
22 Января 2013
-
+116
- 1
- 2
public const string Checked = "☑";
public const string Unchecked = "☐";
Чекбокс
roman-kashitsyn,
16 Января 2013
-
+130
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
#include <stdlib.h>
struct no_matter
{
int some_field;
};
struct matter *do_stuff(void)
{
struct no_matter *m = calloc(1, sizeof *m);
return m;
}
int main(void)
{
struct no_matter *m = do_stuff();
free(m);
return 0;
}
Сегодня выполняю роль гумна. В сишке можно возвращать указатель на непонятно откуда взявшуюся необъявленную ранее структуру и код будет компиляться (ладно хоть пишет невнятные ворнинги, только благодаря им нашёл опечатку в одной букве в имени структуры в рабочем коде). Понятно, что все указатели одинаково числа, но всё равно как-то некрасиво. Хацкелисты негодуэ, даёшь монаду Ptr
http://ideone.com/3SABHW
roman-kashitsyn,
27 Ноября 2012
-
+134
- 1
- 2
- 3
- 4
- 5
- 6
- 7
private static readonly SortedDictionary<Type, ModelConvertor> ModelTypes = new SortedDictionary<Type, ModelConvertor>
{
{ typeof(ObjectType), в => Convert((ObjectType)в) },
{ typeof(ObjectBodyFormat), пятницу => Convert((ObjectBodyFormat)пятницу) },
{ typeof(PropertyId), набухаюсь => Convert((PropertyId)набухаюсь) },
{ typeof(PropertyCategory), нафиг => Convert((PropertyCategory)нафиг) }
};
Сегодня случайно заметил этот крик души в мониторе одного коллеги. Всё-таки, в юникодных идентификаторах есть свой неуловимый шарм...
roman-kashitsyn,
22 Ноября 2012
-
+76
- 1
- 2
- 3
if (true == args[argInx++].equals("request")) {
// ...
}
Бульшит Йода-стайл
roman-kashitsyn,
06 Ноября 2012
-
+70
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
protected SocketChannel getSockById(int id)
{
Iterator<SocketChannel> i = clientSock.iterator();
while(i.hasNext())
{
SocketChannel s = i.next();
if(s.hashCode() == id)
return s;
}
return null;
}
Инетесно, о чём думал автор в момент создания этого шедевра
roman-kashitsyn,
30 Октября 2012
-
+73
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
public String getText()
{
// don't ask me what these charset tricks mean :)
String str = null;
try
{
str = new String(doc.getText(0, doc.getLength()).getBytes("Cp1252"), "Cp1251");
}
catch(Exception e)
{
// Leave str as null
}
return str;
}
...
roman-kashitsyn,
22 Октября 2012
-
+107
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
if (_appliesTo.Contains("CH"))
{
depElig &= true;
}
else
{
depElig &= false;
}
Вроде такого boolshit тут ещё не было.
roman-kashitsyn,
30 Августа 2012