- 1
- 2
// инверсия цвета
n ~= n;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+9
// инверсия цвета
n ~= n;
Было в шаблоне, довольно долго. Сегодня впервые метод был использован... Минут пять втыкал, почему не хочет компилировать.
Всё-равно пришлось заменить на n = 0xFFFFFF ^ n, потому что старший байт нужно было неизменным оставлять.
+9
template<...many params...>
class Foo
{
template <typename T>
class __Bar
{
T t;
public :
__Bar(T t) : t(t) {}
};
public :
template <typename T>
__Bar<T> Bar(T t)
{
return __Bar<T>(t); // просто __Bar(t) нельзя, вывод не сработает
}
template <typename T>
void Buzz (T t)
{
}
};
...
Foo f;
f.Buzz(Bar(5));
А как вы выкручиваетесь из неумения определять тип результата по типу параметров конструктора?
+9
BOOST_FOREACH(auto &v, pt.get_child("root"))
Код компилируется и написан таким изначально. Но судя по всему использует копипаст из примеров.
+9
class t_item{
public:
#define DEF_PRO_STRUCT_INFO(NAME,PARENT,OWNER)NAME(t_item)
#define DEF_PRO_VARIABLE(ADDBEG,ADDVAR,ADDEND)\
ADDBEG()\
ADDVAR(0,string,name,DEF,$,$)\
ADDVAR(1,int,next,SET,0,$)\
ADDEND()
//=====+>>>>>t_item
#include "QapGenStruct.inl"
//<<<<<+=====t_item
public:
};
+9
#define FindElem( L ) _FindElem( [=] (VEC4 iter) -> bool { return (L); } )
На что только не пойдут люди, чтобы писать
VEC4* pv = vecs.FindElem( iter.x==1.0f );
+9
#include <iostream>
#include <iterator>
#include <algorithm>
#include <array>
#include <memory>
using namespace std;
template<size_t N1, size_t N2, class T1, class T2,
class T = typename common_type<T1, T2>::type>
T (*concatCArray(const T1(&arr1)[N1], const T2(&arr2)[N2]))[N1+N2]{
const auto result = (T(*)[N1+N2]) new T[N1+N2];
copy(arr2, end(arr2), copy(arr1, end(arr1), *result));
return result;
}
template<std::size_t N, class T>
void viewCArrayPtr(T (*arr)[N]){
copy(*arr, end(*arr), ostream_iterator<T>(cout, " "));
}
template<size_t N1, size_t N2, class T1, class T2,
class T = typename remove_const<typename common_type<T1, T2>::type>::type>
array<T, N1+N2> concatArray(const array<T1, N1> &arr1, const array<T2, N2> &arr2){
array<T, N1+N2> result;
copy(begin(arr2), end(arr2), copy(begin(arr1), end(arr1), result.begin()));
return result;
}
template<std::size_t N, class T>
void viewArray(const array<T, N> arr){
copy(begin(arr), end(arr), ostream_iterator<T>(cout, " "));
}
int main() {
int arr1[]{0,1,2,3}, arr2[]{4,5,6};
auto ca = concatCArray(arr1, arr2);
unique_ptr<int[]> safe(*ca);
viewCArrayPtr(ca);
cout<<endl;
array<float, 2> a {1,2.5};
array<int, 3> b{3, 4, 5};
viewArray(concatArray(a, b));
return 0;
}
От туда.
http://ideone.com/3KjycI
+9
/** фрагмент 0 */
buff[symbols]=0;
printf ("%s\n",buff);
if (strcmp (buff,"Yes!") != 0)
exit (1);
strcpy (buff,"");
sprintf (buff,"%s","File_size?");
printf ("%s\n",buff);
/** фрагмент 1 */
Par2 = 0;
if (number_packet < 10)
Par2 = 1;
else
if (number_packet < 100)
Par2 = 2;
else
if (number_packet < 1000)
Par2 = 3;
else
if (number_packet < 10000)
Par2 = 4;
else
if (number_packet < 100000)
Par2 = 5;
else
if (number_packet < 1000000)
Par2 = 6;
else
if (number_packet < 10000000)
Par2 = 7;
Par2++;
2 фрагмента лабораторной работы
+9
# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x
Очень интересный стайлгайд Алексей Гуртового
+9
int numBlock = 0;
for(int i = 0; i < 16; i++)
for(int j = 0; j < 25; j++)
{
if(levelInfo[i][j].active)
{
if(levelInfo[i][j].part && levelInfo[i][j].type) continue;
if(levelInfo[i][j].type)
{
tempLevel[numBlock*8 ] = i*24;
tempLevel[numBlock*8+1] = (j)*24;
tempLevel[numBlock*8+2] = (i+2)*24;
tempLevel[numBlock*8+3] = (j)*24;
tempLevel[numBlock*8+4] = (i+2)*24;
tempLevel[numBlock*8+5] = (j+1)*24;
tempLevel[numBlock*8+6] = i*24;
tempLevel[numBlock*8+7] = (j+1)*24;
}
else
{
tempLevel[numBlock*8 ] = i*24;
tempLevel[numBlock*8+1] = (j)*24;
tempLevel[numBlock*8+2] = (i+1)*24;
tempLevel[numBlock*8+3] = (j)*24;
tempLevel[numBlock*8+4] = (i+1)*24;
tempLevel[numBlock*8+5] = (j+1)*24;
tempLevel[numBlock*8+6] = i*24;
tempLevel[numBlock*8+7] = (j+1)*24;
}
if(levelInfo[i][j].type)
for(int k = 0; k < 8; k++) tempTex[numBlock*8+k] = coord[0][k];
else
for(int k = 0; k < 8; k++) tempTex[numBlock*8+k] = coord[1][k];
}
else
{
tempLevel[numBlock*8 ] = i*24;
tempLevel[numBlock*8+1] = (j)*24;
tempLevel[numBlock*8+2] = (i+1)*24;
tempLevel[numBlock*8+3] = (j)*24;
tempLevel[numBlock*8+4] = (i+1)*24;
tempLevel[numBlock*8+5] = (j+1)*24;
tempLevel[numBlock*8+6] = i*24;
tempLevel[numBlock*8+7] = (j+1)*24;
for(int k = 0; k < 8; k++) tempTex[numBlock*8+k] = coord[2][k];
}
numBlock++;
}
for(int i = 0; i < 2; i++)
for(int j = 0; j < 3; j++)
{
if(!fallBlocks[i][j].active) continue;
if(fallBlocks[i][j].part && fallBlocks[i][j].type) continue;
if(!fallBlocks[i][j].type)
{
tempLevel[numBlock*8 ] = (fallPosX+i)*24;
tempLevel[numBlock*8+1] = (fallPosY-j)*24;
tempLevel[numBlock*8+2] = (fallPosX+i+1)*24;
tempLevel[numBlock*8+3] = (fallPosY-j)*24;
tempLevel[numBlock*8+4] = (fallPosX+i+1)*24;
tempLevel[numBlock*8+5] = (fallPosY-j+1)*24;
tempLevel[numBlock*8+6] = (fallPosX+i)*24;
tempLevel[numBlock*8+7] = (fallPosY-j+1)*24;
for(int k = 0; k < 8; k++) tempTex[numBlock*8+k] = coord[1][k];
}
else
{
tempLevel[numBlock*8 ] = (fallPosX+i)*24;
tempLevel[numBlock*8+1] = (fallPosY-j)*24;
tempLevel[numBlock*8+2] = (fallPosX+i+2)*24;
tempLevel[numBlock*8+3] = (fallPosY-j)*24;
tempLevel[numBlock*8+4] = (fallPosX+i+2)*24;
tempLevel[numBlock*8+5] = (fallPosY-j+1)*24;
tempLevel[numBlock*8+6] = (fallPosX+i)*24;
tempLevel[numBlock*8+7] = (fallPosY-j+1)*24;
for(int k = 0; k < 8; k++) tempTex[numBlock*8+k] = coord[0][k];
}
numBlock++;
}
Нямка. В унитаз уже не помещается, вылью сюда
+9
// fib.h
#pragma once
using ull = unsigned long long;
inline constexpr ull fib(size_t n, ull first, ull second) {
return n == 0 ? first : fib(n - 1, second, first + second);
}
inline constexpr ull fib(size_t n) {
return fib(n, 0, 1);
}
// fibs.h
#pragma once
#include "fib.h"
#include <array>
enum class fibs : ull {
#define FIB(i, val) fib##i = val,
#define COUNT(val) COUNT = val
#include "fibs.inl"
#undef COUNT
#undef FIB
};
std::array<ull, static_cast<size_t>(fibs::COUNT)> const & fibs_values() {
static std::array<ull, static_cast<size_t>(fibs::COUNT)> values = {
#define FIB(i, val) val,
#define COUNT(val)
#include "fibs.inl"
#undef COUNT
#undef FIB
};
return values;
}
// main.cpp
#include "fibs.h"
#include <iostream>
int main() {
using namespace std;
for (auto fib : fibs_values()) {
cout << fib << "," << endl;
}
return 0;
}
// fibs.inl = gen.exe > fibs.inl
// gen.cpp
#include "fib.h"
#include <iostream>
int main() {
using namespace std;
size_t i;
for (i = 0; i < 94; i++) {
cout << "FIB(" << i << ", " << fib(i) << ")" << endl;
}
cout << "COUNT(" << i << ")";
return 0;
}