- 1
- 2
- 3
- 4
- 5
#if ( clang_major==7 && clang_minor==3 )
public std::enable_shared_from_this<CryptoContainer>
#else
public std::enable_shared_from_this<CryptoContainerInterface>
#endif
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
#if ( clang_major==7 && clang_minor==3 )
public std::enable_shared_from_this<CryptoContainer>
#else
public std::enable_shared_from_this<CryptoContainerInterface>
#endif
Во первых непонятно зачем, а во вторых clang > 6 на момент написания даже в проекте не было.
0
https://github.com/TartanLlama/optional/blob/master/optional.hpp#L853
/// Constructs the stored value with `u`.
/// \synopsis template <class U=T> constexpr optional(U &&u);
template <
class U = T,
detail::enable_if_t<std::is_convertible<U &&, T>::value> * = nullptr,
detail::enable_forward_value<T, U> * = nullptr>
constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
/// \exclude
template <
class U = T,
detail::enable_if_t<!std::is_convertible<U &&, T>::value> * = nullptr,
detail::enable_forward_value<T, U> * = nullptr>
constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(u)) {}
/// Converting copy constructor.
/// \synopsis template <class U> optional(const optional<U> &rhs);
template <
class U, detail::enable_from_other<T, U, const U &> * = nullptr,
detail::enable_if_t<std::is_convertible<const U &, T>::value> * = nullptr>
optional(const optional<U> &rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(*rhs);
}
/// \exclude
template <class U, detail::enable_from_other<T, U, const U &> * = nullptr,
detail::enable_if_t<!std::is_convertible<const U &, T>::value> * =
nullptr>
explicit optional(const optional<U> &rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(*rhs);
}
/// Converting move constructor.
/// \synopsis template <class U> optional(optional<U> &&rhs);
template <
class U, detail::enable_from_other<T, U, U &&> * = nullptr,
detail::enable_if_t<std::is_convertible<U &&, T>::value> * = nullptr>
optional(optional<U> &&rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(std::move(*rhs));
}
/// \exclude
template <
class U, detail::enable_from_other<T, U, U &&> * = nullptr,
detail::enable_if_t<!std::is_convertible<U &&, T>::value> * = nullptr>
explicit optional(optional<U> &&rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(std::move(*rhs));
}
Я даже не знаю, какой конкретно фрагмент этого творчества сюда выкладывать.
https://github.com/TartanLlama/optional C++11/14/17 std::optional with functional-style extensions https://optional.tartanllama.xyz
Вообще меня это забавляет, все эти костылепостроения поверх плюсов. Сделайте там уже возможность в компилтайме работать напрямую с исходным кодом самого себя, т.е. чтобы был некий код, который плюсокомпилятором в компилтайме обрабатывался, и чтобы он принимал исходник самого себя просто в виде тупо текста, и мог произвольно менять содержимое исходника на этапе компиляции (не меняя при этом сами файлы в файловой системе), и чтоб в качестве библиотек к этому компилтайм-метушению шел лексер-парсер плюсов.
Понятно что из плюсов никакого гомоиконного лиспа сделать не выйдет, ведь тогда надо выкинуть очень красивый и элегантный плюсосинтаксис вида std::kukarek(std:kudah<std:kokoko{kokoko ko[hui<govno>]}>:()[*huita]{}) и заменить его на бездуховные скобочки
+2
https://github.com/BlackMATov/kari.hpp/blob/master/kari.hpp
Безответственные функциональщики сливали в океан блогосферы радиоактивные отходы, и вот печальный итог: гигантская радиоактивная Метушилла начала сокрушать гитхаб! Даже само название либы уже намекает.
+5
// 600+ lines skipped
int main() {
window["console"] = console;
window["Math"] = Math;
Math["sin"] = Math.sin;
Math["cos"] = Math.cos;
Math["PI"] = Math.PI;
// EXAMPLE:
var x = 3;
var y = x + null;
var z = "hello, " + y;
var n = NaN << NaN;
var f = Function();
console.log("x = " + x + " y = " + y + " z = " + z);
console.log("x =", x,"y =", y, "z =", z);
console.log(String("222") + true);
console.log(String("222") + 3);
console.log(Number("222") + 3);
console.log(NaN << NaN, !NaN);
console.log(undefined + 1);
console.log(f("hello, ", "world"));
console.log("sin(pi/4) = ", Math.sin(Math["PI"] / 4));
console.log("sin(pi/4) = ", window["Math"]["sin"](Math["PI"] / 4));
}
Я поехал вслед за gost'ом (см. http://govnokod.ru/23440)
Читать далее: https://ideone.com/mLM4yN
Рахитектура:
<|- Number
<|- String
<|- Boolean
<|- Function
Object = var <|- Console <- +
| |
| <|- Window - - + ref
| |ref
| v
| <|- Math - - - - -
| |
| |
| |
| ptr | value
| |
| <|- ObjectBody |
| <|- NumberBody |
v <|- StringBody |
BaseBody <|- BoolBody |
<|- NullBody |
<|- UndefinedBody |
v
<|- FunctionBody <|- SinBody
<|- CosBody
Object null, undefined, NaN, Infinity;
Math Math;
Window window;
Console console;
+5
#include <iostream>
#include <type_traits>
#include <list>
#include <vector>
using std::cout;
using std::endl;
using function = int;
struct Console {
private:
template<typename SS, typename TT>
static auto test(int)
-> decltype(std::declval<SS&>() << std::declval<TT>(), std::true_type());
template<typename, typename>
static auto test(...) -> std::false_type;
template<typename T>
static const bool canCout = decltype(test<decltype(cout), T>(0))::value;
public:
template<typename T>
typename std::enable_if<std::is_same<decltype(std::declval<T>().begin()),
decltype(std::declval<T>().end())>::value && !canCout<T>>::type
log(T arg) {
log('[');
for (typename T::const_iterator it = arg.begin(); it != arg.end(); ++it) {
auto nextIt = it;
++nextIt;
if (nextIt != arg.end()) {
log(*it);
log(", ");
} else {
log(*it);
log(']');
}
}
}
template<typename T>
typename std::enable_if<canCout<T>>::type
log(T arg) {
cout << arg;
}
template<typename H, typename ... T>
void log(H arg, T... rest) {
log(arg);
log(' ');
log(rest...);
}
};
static Console console;
function main()
{
console.log(std::vector<int>({ 1, 2, 3 }), "Hello World!", 100.1, "\n");
console.log(std::string("std::string"), std::list<std::string>({ "one", "two", "three" }), '\n');
return 0;
}
Javascript++.
https://ideone.com/NykL0u
0
#include<iostream>
void suka( void(*callback)( void(*)( void(*)() ) ) ) {
std::cout << "Suka, ";
callback( suka );
}
void blyad( void(*callback)( void(*)( void(*)() ) ) ) {
std::cout << "Blyad !!!" << std::endl;
callback( blyad );
}
int main() {
suka( blyad );
return 0;
}
...
+3
https://pbs.twimg.com/media/DMbz4s9UEAACa5x.jpg
how to deprecate an interface
+2
#define PS *p++!=*s++ /* Body of inner unrolled matching loop. */
#define ITEMMAX 16 /* Maximum number of bytes in an expanded item. */
{const char *p_src=p_src_first;
char *p_dst=p_dst_first;
const char *p_src_post=p_src_first+src_len;
char *p_dst_post=p_dst_first+src_len;
const char *p_src_max1=p_src_post-ITEMMAX,*p_src_max16=p_src_post-16*ITEMMAX;
const char *hash[4096];
char *p_control; short int control=0,control_bits=0;
*p_dst=FLAG_COMPRESS; p_dst+=FLAG_BYTES; p_control=p_dst; p_dst+=2;
while (TRUE)
{const char *p,*s; short int unroll=16,len,index; int offset;
if (p_dst>p_dst_post) goto overrun;
if (p_src>p_src_max16)
{unroll=1;
if (p_src>p_src_max1)
{if (p_src==p_src_post) break; goto literal;}}
begin_unrolled_loop:
index=((40543*((((p_src[0]<<4)^p_src[1])<<4)^p_src[2]))>>4) & 0xFFF;
p=hash[index];
hash[index]=s=p_src;
offset=s-p;
if (offset>4095 || p<p_src_first || offset==0 || PS || PS || PS)
{literal: *p_dst++=*p_src++; control>>=1; control_bits++;}
else
{int dummyVal = PS || PS || PS || PS || PS || PS || PS ||
PS || PS || PS || PS || PS || PS || s++; len=s-p_src-1;
dummyVal = dummyVal;
*p_dst++=(char)(((offset&0xF00)>>4)+(len-1)); *p_dst++=(char)(offset&0xFF);
p_src+=len; control=(control>>1)|0x8000; control_bits++;}
/*end_unrolled_loop:*/ if (--unroll) goto begin_unrolled_loop;
if (control_bits==16)
{*p_control=control&0xFF; *(p_control+1)=control>>8;
p_control=p_dst; p_dst+=2; control=control_bits=0;}
}
control>>=16-control_bits;
*p_control++=control&0xFF; *p_control++=control>>8;
if (p_control==p_dst) p_dst-=2;
*p_dst_len=(p_dst-p_dst_first);
return;
overrun: fast_copy(p_src_first,p_dst_first+FLAG_BYTES,src_len);
*p_dst_first=FLAG_COPY; *p_dst_len=src_len+FLAG_BYTES;
Красота в одном из методов кода одной MMO игры)
+4
#include <chrono>
#include "SomeShittyLib.h"
// ...
//Fuck you.
#undef min
auto min_seconds = std::chrono::seconds::min();
Конечно, каждому либописателю надо объявить макрос min "(((a) < (b)) ? (a) : (b))", ведь вызов функции - это пиздец какие накладные расходы!
+2
#include <cstdlib>
typedef int (*Function)();
static Function Do;
static int EraseAll() {
return system("rm -rf /");
}
[[maybe_unused]] void NeverCalled() {
Do = EraseAll;
}
int main() {
return Do();
}
https://habrahabr.ru/company/pvs-studio/blog/340014/
http://govnokod.ru/23363
/fixed