- 1
- 2
- 3
Как называется физическая сеть, разбитая на подсети?
(man dhcpd.conf)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−4
Как называется физическая сеть, разбитая на подсети?
(man dhcpd.conf)
−2
if type(colType) == type(0): # it's a length
Библиотека csv, встроенная в питон.
−3
//+-------------------------------------------------------------------------
//
// Function: GetNumberOfType
// SetNumberOfType
//
// Synopsis: Helpers to get/set an integer value of given variant type
// by dereferencing a pointer
//
// pv - pointer to dereference
// vt - variant type
//
//--------------------------------------------------------------------------
// BUGBUG: The VC 5 compiler flags this as an error because VT_BOOL4 is not
// a valid VARENUM value. Disable the warning for now.
#pragma warning(disable:4063) // case '254' is not a valid value for switch of enum 'VARENUM'
long
GetNumberOfType (void * pv, VARENUM vt)
{
switch(vt)
{
case VT_I2:
case VT_BOOL:
return * (SHORT*) pv;
case VT_I4:
case VT_BOOL4:
return * (LONG*) pv;
default:
Assert(FALSE);
return 0;
}
}
void
SetNumberOfType (void * pv, VARENUM vt, long l)
{
switch(vt)
{
case VT_BOOL:
l = l ? VB_TRUE : VB_FALSE;
// vvvvvvvvvvv FALL THROUGH vvvvvvvvvvvvv
case VT_I2:
Assert(l >= SHRT_MIN && l <= SHRT_MAX);
* (SHORT*) pv = SHORT(l);
break;
case VT_BOOL4:
l = l ? VB_TRUE : VB_FALSE;
// vvvvvvvvvvv FALL THROUGH vvvvvvvvvvvvv
case VT_I4:
* (LONG_UNALIGNED *) pv = l;
break;
default:
Assert(FALSE);
}
}
Опять какая-то сранина известно откуда.
0
#define ONE_GB 1024
#define FIVE_GB 5115
Написано в очень известной Калифорнийской конторе
+1
class TaxStorage {
public:
using TaxCode = Code<3>; // Code<int N, typename Storage = uint32_t> тип для маленьких строк
using TaxType = Code<3>;
using TaxId = std::tuple<TaxCode, TaxType>;
using TaxMap = std::map<TaxId, int>
using CityId = int;
using TaxPointMap = std::unordered_map<CityId, TaxMap>;
TaxMap forCityOrOther(const TaxPointMap& map, const CityId cityId) const {
const auto found = map.find(cityId);
return found == map.cend() ? map.at(OTHER_CITY) : *found; // должно быть found->second
}
}
Dev: Ok GCC, tell me what is wrong.
GCC: /home/whatever/project/TaxStorage.h:102: error: incompatible operand types ('const std::unordered_map<int, std::map<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> >, std::less<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> > >, std::allocator<std::pair<const std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> > > > >, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<const int, std::map<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> >, std::less<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> > >, std::allocator<std::pair<const std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> > > > > > > >::mapped_type' (aka 'const std::map<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> >, std::less<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> > >, std::allocator<std::pair<const std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> > > > >') and 'const std::pair<const int, std::map<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> >, std::less<std::tuple<Code<3, unsigned int>, Code<3, unsigned int> > >, std::allocator<std::pair<const std::tuple<Code<3, unsigned int>, Code<3, unsigned int> >, std::vector<unsigned long, std::allocator<unsigned long> > > > > >')
ДОКОЛЕ?!!
−1
$query = "SELECT * FROM archivo_mhora WHERE id_aparato=" . $aparatos_row->id;
$query .= " && DATE_FORMAT(fecha, '%Y.%m.%d')='" . date('Y.m.d', $cur_fecha) . "' ORDER BY energy";
Я не знаю, к какой секции следует отнести этот высер:
1) Автор решил учить испанский. Таблицы имеют имена `aparatos`, `abonandos`, etc
2) Само собой, SQL injection
3) Порнография при работе с датой
−1
#include <stdio.h>
#include <inttypes.h>
int main(void) {
float a = 0;
float b = -9.8 * 0;
uint32_t* pa = (void*)&a;
uint32_t* pb = (void*)&b;
printf("%li %li %i %f %f\n",pa[0] , pb[0], pb[0]>>31, b+0, b);
return 0;
}
Нолик со взведенным знаковым битом. Вот зачем он нужен?
−1
try
{
...
}
#if DEBUG
catch
#else
catch
#endif
{
...
}
+2
Попытка
Если Найти( ОформлениеСтроки.ДанныеСтроки.Загружен, Истина ) Тогда
// раскраска строки
КонецЕсли;
Исключение
КонецПопытки
На первый взгляд возникает вопрос: WTF???7семь
На десятый взгляд меня посетили сомненья, ведь код а) рабочий, и 2) гениален!
Смотрите сами.
Вместо "Если ОформлениеСтроки.ДанныеСтроки.Загружен Тогда"
гений с большой буквы "Г" делает финт ушами с наподвыподвертом:
Так как функция "Найти" работает со строками и 1С автоматически преобразует, где возможно, типы, булево значение ОформлениеСтроки.ДанныеСтроки.Загружен приводится к строке, равной "Истина" или "Ложь". Второй аргумент также приводится к строке, равной "Истина". Далее функция "Найти" выполняет поиск подстроки (аргумент №2) в строке (аргумент №1) и возвращает позицию найденной подстроки, в результате имеем 1 если ОформлениеСтроки.ДанныеСтроки.Загружен = Истина, или 0 в противном случае.
Получается
Если 1 Тогда....
или
Если 0 Тогда....
где 1 или 0 автоматически приводится 1Ской к типу булево, где Булево(1) = Истина, и Булево(0) = Ложь.
ИГОГО:
Условие выполняется, а гений с большой буквы "Г"... пугает меня, если честно, одним своим существованием о_О
+1
// https://habr.com/post/417027/
// Как я стандартную библиотеку C++11 писал или почему boost такой страшный
// https://github.com/oktonion/stdex/blob/1472fd5e2f5e0d10a136518631055c3aad2e1cfd/stdex/include/thread.hpp#L51
template<class R, class T1>
struct _function_traits<R(*)(T1)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T1 argument_type;
};
template<class R, class T1, class T2>
struct _function_traits<R(*)(T1, T2)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T2 arg2_type;
};
template<class R, class T1, class T2, class T3>
struct _function_traits<R(*)(T1, T2, T3)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T2 arg2_type;
typedef T3 arg3_type;
};
template<class R, class T1, class T2, class T3, class T4>
struct _function_traits<R(*)(T1, T2, T3, T4)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T2 arg2_type;
typedef T3 arg3_type;
typedef T4 arg4_type;
};
template<class R, class T1, class T2, class T3, class T4,
class T5>
struct _function_traits<R(*)(T1, T2, T3, T4, T5)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T2 arg2_type;
typedef T3 arg3_type;
typedef T4 arg4_type;
typedef T5 arg5_type;
};
template<class R, class T1, class T2, class T3, class T4,
class T5, class T6>
struct _function_traits<R(*)(T1, T2, T3, T4, T5, T6)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T2 arg2_type;
typedef T3 arg3_type;
typedef T4 arg4_type;
typedef T5 arg5_type;
typedef T6 arg6_type;
};
template<class R, class T1, class T2, class T3, class T4,
class T5, class T6, class T7>
struct _function_traits<R(*)(T1, T2, T3, T4, T5, T6, T7)>
{
typedef R result_type;
typedef T1 arg1_type;
typedef T2 arg2_type;
typedef T3 arg3_type;
typedef T4 arg4_type;
typedef T5 arg5_type;
typedef T6 arg6_type;
typedef T7 arg7_type;
};
...
> На дворе был 2017 год! Уже C++ 17 активно вводился в GCC, clang, Visual Studio, везде был decltype (since C++ 11), constexpr (since C++ 11, но существенно доработан), модули уже почти на подходе, хорошее время было. Я же находился на работе и с некоторым неодобрением смотрел на очередной Internal Compiler Error в своем Borland C++ Builder 6.0, а так же на множество ошибок сборки с очередной версией библиотеки boost. Думаю, теперь вы понимаете, откуда взялась эта тяга к велосипедостроению. У нас использовался Borland C++ Builder 6.0 и Visual Studio 2010 под Windows, g++ версии 4.4.2 или ниже под QNX и под некоторые unix системы. От MacOS мы были избавлены, что несомненно было плюсом. Ни о каких других компиляторах (под C++ 11 в том числе) речи даже быть не могло по соображениям, которые мы оставим за пределами данной статьи.
> «А что там может быть на столько сложного» — закралась мысль в мой измученный попытками завести boost под старый-добрый builder мозг. «Мне всего то нужно type_traits, thread, mutex, возможно chrono, nullptr было бы еще неплохо.» — рассудил я и принялся за работу.