- 1
- 2
- 3
- 4
- 5
- 6
#include <iostream>
int main(){
int std = 10;
std::cout << std << std::endl;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 14
+17
#include <iostream>
int main(){
int std = 10;
std::cout << std << std::endl;
}
+125
http://coliru.stacked-crooked.com/a/a5ba510a2075393f
Под другим ником опубликовал чуть раньше:
http://govnokod.ru/12937
+17
#include <boost/spirit/include/phoenix_fusion.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
#include <iostream>
#define GEN_MACRO_0(X, Y) \
((X, Y)) GEN_MACRO_1
#define GEN_MACRO_1(X, Y) \
((X, Y)) GEN_MACRO_0
#define GEN_MACRO_0_END
#define GEN_MACRO_1_END
#define SHOW(name,val) \
std::cout << name << " : " << val ;
#define SHOW_TUPLE(r,_,tupple) \
SHOW( "1st",BOOST_PP_TUPLE_ELEM(2,0,tupple)) \
SHOW("\t2nd",BOOST_PP_TUPLE_ELEM(2,1,tupple)) \
std::cout << std::endl;
#define OUTPUT (ADD_PAREN_1 INPUT,_END)
#define SHOW_NODES(seq) \
BOOST_PP_SEQ_FOR_EACH(SHOW_TUPLE,_, \
BOOST_PP_CAT(GEN_MACRO_0 seq,_END) )
int main() {
SHOW_NODES(
("cock","unskill")
("rock","hard")
("price","over 100500")
)
}
Годнокодец из boost::fusion.
http://coliru.stacked-crooked.com/a/c516a67930a9c1a8
+18
#include <iostream>
#define PRINT(val) std::cout << #val \
<< " value: " << val \
<< " address: " << &val << std::endl;
int& constRef(){
int var = 10;
PRINT(var)
return var;
}
int main() {
const int a = 'a', b = 'bcde';
std::cout << a << " " << b << std::endl;
const int& ref = constRef();
PRINT(ref)
}
Малоизвестный синтаксис плюсов.
1. Инициализация целочисленного значения из строки (используется в строках-классах времени компиляции).
2. Константная ссылка на стековый объект (используется для создания DSL, в т.ч. boost::spirit).
P.S.: Более полный вариант со строками лежит на форуме.
+9
# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x
Очень интересный стайлгайд Алексей Гуртового
+108
assert(buf=malloc(BUF_SIZ));
А в релизе мы сэкономим памяти
−170
SELECT id FROM (
SELECT a.id, b.idNOT FROM stable a
LEFT JOIN
(SELECT idNOT FROM nottable) b
ON a.id = b.idNOT ) fromtable
WHERE idNOT IS NULL
SQL Server compact не понимает NOT IN.
Эквивалент будет:
SELECT id FROM stable
WHERE id NOT IN (SELECT idNOT FROM nottable)
+118
int function BinarySearch (Array A, int Lb, int Ub, int Key);
begin
do forever
M = (Lb + Ub)/2;
if (Key < A[M]) then
Ub = M - 1;
else if (Key > A[M]) then
Lb = M + 1;
else
return M;
if (Lb > Ub) then
return -1;
end;
[color=green]Бинарный поиск это поиск, на который затрачивается в 2 раза меньше времени[/green]
http://algolist.manual.ru/search/bin_search.php
+2
#if defined(_WIN32) || defined(_WIN64)
size_t size = message.size();
size_t size_buf = 1015;
size_t pointer = 0;
for (int i = 0; i < (size/size_buf) + 1 ; i++){
/*Делаем для красивого вывода. Пробел всегда один байт.
*Потому сматываем указатель буфера до первого пробела.*/
int buf = size_buf;
while (message[pointer+buf] != ' ')
buf--;
/*Здесь лечится косяк MinGw, буфер принимает по 1к байтов.
*Лечение производим создавая дополнительные буферы.*/
istringstream ss(message.substr(pointer,buf) );
std::cout << ss.rdbuf();
pointer += buf;
}
#else
std::cout << message;
#endif
Похоже плохая сборка MinGw.
http://govnokod.ru/13094
+129
#include <stdio.h>
#include <dlfcn.h>
#include <getopt.h>
#include <string.h>
#include <stdlib.h>
#define int64 long long
const char* help =
" -h,--help это сообщение\
-f,--func имя функции\
-n,--num количество аргументов функции\
-a,--arg1 первый аргумент\
-b,--arg2 второй аргумент";
struct option longopts[] ={
{"func",1,NULL,'f'},
{"help",1,NULL,'h'},
{"num", 1,NULL,'n'},
{"arg1",1,NULL,'a'},
{"arg2",1,NULL,'b'},
{0,0,0,0}
};
void strtoa(void** arg, char* optarg){
int tmp;
char* e;
tmp = strtol(optarg,&e,10);
if (e != optarg + strlen(optarg)){
*arg = malloc(strlen(optarg));
strcpy((char*)*arg,optarg);
} else *arg = (void*)tmp;
}
int64 main(int argc, char** argv){
int opt, num = 0;
void *a,*b;
char* e;
void* (*func2)(void*,void*),
(*func1)(void*),
(*func0)(), *func = 0;
while((opt = getopt_long(argc,argv,"f:h:n:a:b:",longopts,NULL)) != -1){
switch (opt){
case 'h':
fprintf(stderr,"%s",help);
exit(0);
case 'f':
func = dlsym(NULL,optarg);
break;
case 'n':
num = atoi(optarg);
if (num > 2) exit(1);
break;
case 'a':
strtoa(&a,optarg);
break;
case 'b':
strtoa(&b,optarg);
break;
}
}
if(func != 0){
switch (num){
case 0:
func0 = func;
(*func0)();
break;
case 1:
func1 = func;
(*func1)(a);
break;
case 2:
func2 = func;
(*func2)(a,b);
}
}
return 0;
}
Запускает любую функцию линукс, содержащую до 2-х аргументов. В хелпе все написано. Собирать так c флагом -dl.
Использовать так:
a.out -f sleep -n 1 -a 1 - sleep на 1 секунду
a.out -f printf -n 1 -a OK - выводит без конца строки
вдохновлен этим:
http://govnokod.ru/13763
Я, crastinus97, говорю вам: этого способа нет в man. Я его сам открыл.