- 1
- 2
- 3
ID_tables_vec[arg1.get_extra_value()]
[ID_tables_vec[arg1.get_extra_value()][arg1.get_value()].get_value()]
.set_name(tmp_str);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
ID_tables_vec[arg1.get_extra_value()]
[ID_tables_vec[arg1.get_extra_value()][arg1.get_value()].get_value()]
.set_name(tmp_str);
Это один оператор. Из кода интерпретатора модельного языка (задание в универе). Периодически в коде начали возникать подобные вещи, связанные с особенностями таблиц имен. Буду рад, если кто-то предложит эквивалентные, но более читаемые конструкции.
+2
DWORD GetDriveSpaceMB(char* drive)
{
DWORD nsc, nbs, nfc, ncu;
double FreeB;
DWORD FreeM;
string diskname = format_x("%s:\\",drive);
GetDiskFreeSpace((char*)diskname.c_str(), &nsc, &nbs, &nfc, &ncu );
FreeB = (double) nfc * (double) nsc * (double) nbs;
FreeM = FreeB / 1024.0 / 1024;
return FreeM;
}
+6
#include <iostream>
using namespace std;
struct One
{
bool operator==(const One &) { cout << "hello from One!" << endl; return true; }
bool operator==(unsigned int) { cout << "hello from One!" << endl; return true; }
};
One operator "" x( unsigned long long int ) { return One{}; }
One operator "" xMAGICK( unsigned long long int ) { return One{}; }
int main()
{
cout << (0xMAGICK == 0x);
return 0;
}
http://ideone.com/gGYFce
Расширяем множество шестнадцатеричных цифр при помощи UDL
В C++17 осталось разрешить перегрузку операторов встроенных типов - вот тогда можно будет оторваться по-полной!
−1
//Сериализовать структуру со статической информацией о её полях
template<typename T, typename T0, typename ...Args> void SerializeBinary(
const Tuple<T0 T::*, Args T::*...>& members, const T& src, void*& dst)
{
SerializeBinary(src.*members.first, dst);
SerializeBinary(members.next, src, dst);
}
template<typename T, typename T0> void SerializeBinary(
const Tuple<T0 T::*>& members, const T& src, void*& dst)
{
SerializeBinary(src.*members.first, dst);
}
//Десериализовать структуру со статической информацией о её полях
template<typename T, typename T0, typename ...Args> void DeserializeBinary(
const Tuple<T0 T::*, Args T::*...>& members, T& dst, const void*& src)
{
DeserializeBinary(dst.*members.first, src);
DeserializeBinary(members.next, dst, src);
}
template<typename T, typename T0> void DeserializeBinary(
const Tuple<T0 T::*>& members, T& dst, const void*& src)
{
DeserializeBinary(dst.*members.first, src);
}
//Размер структуры в сериализованном виде
template<typename T, typename T0, typename ...Args> uintptr GetSerializedBinarySize(
const Tuple<T0 T::*, Args T::*...>& members, const T& src)
{
return GetSerializedBinarySize(src.*members.first) + GetSerializedBinarySize(members.next, src);
}
template<typename T, typename T0> uintptr GetSerializedBinarySize(
const Tuple<T0 T::*>& members, const T& src)
{
return GetSerializedBinarySize(src.*members.first);
}
Сделал свой сериализатор на шаблонах и кортежах с указателями на данные-члены.
+3
for(;++i <= n && std::cin >> a;)
if(a >= 1.0 && ++bigger && std::cout << i << ' ');
else
if(mx < a)
mx = a,
maxi = i;
Решил сдать задачи на cf, в итоге выдавил из себя вот такой вот цикл.
Очень лень было ставить скобочки.
+7
#include <iostream>
using namespace std;
class Foo {
public:
operator int() const {
cout<<"1";
return *this;
}
};
int main() {
Foo foo;
int i = foo;
cout<<i<<endl;
return 0;
}
−3
for(;;){new int;}
−4
/**
* Colors which you can use in your application.
*/
typedef enum
{
BLACK, /**< black color */
BLUE, /**< blue color */
GREEN, /**< green color */
CYAN, /**< cyan color */
RED, /**< red color */
MAGENTA, /**< magenta color */
BROWN, /**< brown color */
LIGHTGRAY, /**< light gray color */
DARKGRAY, /**< dark gray color */
LIGHTBLUE, /**< light blue color */
LIGHTGREEN, /**< light green color */
LIGHTCYAN, /**< light cyan color */
LIGHTRED, /**< light red color */
LIGHTMAGENTA, /**< light magenta color */
YELLOW, /**< yellow color */
WHITE /**< white color */
} COLORS;
+5
++ ++i;
+2
int a = -1;
while(+a){
if(a == 0) break;
}