- 1
- 2
- 3
- 4
- 5
- 6
- 7
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
MyType(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const CopyPastedFromSomewhere&) = delete;
MyType& operator=(const MyType*) = delete;
// Winner?
MyType& MyType(const MyType&) = delete;
А что можно найти в вашей кодовой базе? К слову, выяснилось, что вариант
void operator=(const MyType&) = delete;
вполне себе допустим.
0
#include <xmmintrin.h>
void crasher() {
constexpr __m128 w = {1,2,3,4};
asm ("addps %[w], %[w]" : : [w] ""(w));
}
Крашим GCC
https://ideone.com/iIAN0i
0
class PriceCache {
public:
FlightStorage(const std::size_t count) {
for (std::size_t i = 0; i < count; ++i) {
flights.emplace_back(FlightCache::get(i));
prices.emplace_back(&flights.back(), Price::getFor(flights.back()));
}
}
private:
std::vector<Flight> flights;
std::vector<const Flight *, double> prices;
};
"случайные сегфолты при обращении к PriceCache::prices"
0
return f() <= x->size() ? true:false;
Классика?
−1
// Read option name (can contain spaces)
while (is >> token && token != "value")
- name += string(" ", name.empty() ? 0 : 1) + token;
+ name += (name.empty() ? "" : " ") + token;
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_create
Replacing string(" ", name.empty() ? 0 : 1) with (name.empty() ? "" : " ") and the same in the while() loop for value fixes the problem (for me).
Does anyone know if "string(" ", 0)" is invalid C++ ?
Кресты такие кресты.
0
double x = 0, y;
while (x < 1) {
y = x;
x += rand(0, 1);
}
Задача на теорию вореации и кобенаторику.
rand - равномерное распределение
Нужно найти матожидание y. С пруфами.
0
// enum_helper_pre.h
#ifndef delimiter
#define delimiter ,
#endif
#ifndef enumeration_begin
#define enumeration_begin(arg) enum arg {
#endif
#ifndef enumeration_end
#ifdef last_enumerator
#define enumeration_end delimiter last_enumerator }
#else
#define enumeration_end }
#endif
#endif
#ifndef declare_member
#define declare_member(arg) arg
#endif
#ifndef member_value
#define member_value(arg) = arg
#endif
// enum_helper_post.h
#undef delimiter
#undef enumeration_begin
#undef enumeration_end
#undef last_enumerator
#undef declare_member
#undef member_value
// color.h
#include "enum_helper_pre.h"
enumeration_begin(color)
declare_member(RED) member_value(-2) delimiter
declare_member(GREEN) delimiter
declare_member(BLUE) member_value(5) delimiter
declare_member(BRIGHTNESS)
enumeration_end;
#include "enum_helper_post.h"
// main.cpp
#include <iostream>
#include <string>
#include <boost/bimap.hpp>
#include <boost/preprocessor/stringize.hpp>
#include "color.h"
int main(int argc,char* argv[])
{
typedef boost::bimap<color,std::string> map_type;
map_type color_map;
#define declare_member(arg) color_map.insert( map_type::value_type(arg,BOOST_PP_STRINGIZE(arg)) )
#define delimiter ;
#define enumeration_begin(arg)
#define enumeration_end
#define member_value(arg)
#include "color.h"
std::cout<<color_map.left.at(RED)<<std::endl;
std::cout<<color_map.left.at(BLUE)<<std::endl;
std::cout<<color_map.right.at("GREEN")<<std::endl;
std::cout<<color_map.right.at("BRIGHTNESS")<<std::endl;
return 0;
}
// Output
RED
BLUE
-1
6
Нарыл эту хуйню на http://www.quizful.net/post/enum-types-c
0
bool SomeClass::someFunc()
{
#define err(msg) { echo(msg); asm jmp __label_error; }
// много кода
if (some) err("все плохо");
// еще больше кода
return true;
__label_error:
// тут типа код очистки
return false;
#undef err
}
"мы не используем goto"
(Borland C++Builder 6.0)
+1
https://habrahabr.ru/post/347688/
Ученые выяснили, что плюсы медленнее си.
0
switch (sy->type) {
if (0) case RTLIL::ST0: f << stringf("low ");
if (0) case RTLIL::ST1: f << stringf("high ");
if (0) case RTLIL::STp: f << stringf("posedge ");
if (0) case RTLIL::STn: f << stringf("negedge ");
if (0) case RTLIL::STe: f << stringf("edge ");
dump_sigspec(f, sy->signal);
f << stringf("\n");
break;
case RTLIL::STa: f << stringf("always\n"); break;
case RTLIL::STg: f << stringf("global\n"); break;
case RTLIL::STi: f << stringf("init\n"); break;
}
Не видел ещё тут такого. Новый вид гоатсеуту.
Нашел тут:
https://tinyurl.com/y8eov5pc // https://www.reddit.com/r/cpp_questions/comments/7swqbp/if_0_case/
Исходник: https://tinyurl.com/ybtoqeon // https://github.com/fabiensanglard/xrick/blob/239d213f01be8d0086c449080ce61bde8dcad7b4/src/data.c#L189