- 1
- 2
- 3
boost::unordered::unordered_set<const WindowName> _windowNameSet;
//...
return (std::find(_windowNameSet.begin(),_windowNameSet.end(), Name) != _windowNameSet.end());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+19
boost::unordered::unordered_set<const WindowName> _windowNameSet;
//...
return (std::find(_windowNameSet.begin(),_windowNameSet.end(), Name) != _windowNameSet.end());
+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 фрагмента лабораторной работы
+15
static std::vector<std::string> listSubstring(std::string stringData, std::string separator)
{
std::vector<std::string> result;
std::size_t found = stringData.find(separator);
if (found==std::string::npos)
{
result.push_back(stringData);
return result;
}
result.push_back(stringData.substr(0,found));
std::vector<std::string> ko=listSubstring(found+separator.length(),separator);
for (std::vector<std::string>::iterator i = ko.begin(); i != ko.end(); ++i)
{result.push_back(*i);}
return result;
}
+11
/// Represents the model of a Writer document.
class SW_DLLPUBLIC SwDoc :
public IInterface,
public IDocumentSettingAccess,
public IDocumentDeviceAccess,
public IDocumentRedlineAccess,
public IDocumentLinksAdministration,
public IDocumentFieldsAccess,
public IDocumentContentOperations,
public IDocumentStylePoolAccess,
public IDocumentLineNumberAccess,
public IDocumentStatistics,
public IDocumentState,
public IDocumentDrawModelAccess,
public IDocumentLayoutAccess,
public IDocumentTimerAccess,
public IDocumentChartDataProviderAccess,
public IDocumentListItems,
public IDocumentOutlineNodes,
public IDocumentListsAccess,
public IDocumentExternalData
{
...
Вот это монстрище!
http://opengrok.libreoffice.org/xref/core/sw/inc/doc.hxx
+6
#include <iostream>
#include <conio.h>
#include <clocale>
using namespace std;
int files; int disc_D(); int disc_E(); int disc_C();
int resursefunction()
{char s;
cout << "Выберите диск" << endl;
cout <<"1-D:\\" << endl;
cout <<"2-C:\\" << endl;
cout <<"3-E:\\" << endl;
cout <<"0 - рабочий стол" << endl;
cin >> s;
if(s == '1') return disc_D();
if(s == '2') return disc_C();
if(s == '3') return disc_E();
if(s == '0') return main();
_getch();}
int main()
{ char vibor;
setlocale( LC_ALL, "Russian" );
cout << "\t\t\t\tРабочий стол" << endl;
cout << "\n\n";
cout << "1-Управление ресурсами" << endl;
cout << "2-Программы" << endl;
cout << "3-Игры" << endl;
cout << "4-Выход из системы" << endl;
cin >> vibor;
if(vibor == '1') resursefunction();
_getch();
return main();}
int disc_D()
{ int res, a;
char vv;
cout << "D:\\" << endl;
cout << "На диске" << endl;
cout << "5 - папок" << endl;
cout << files << " - файлов" << endl;
cout << "1 - создать файл" << endl;
cout << "2 - удалить файл" << endl;
cout << "0 - назад" << endl;
cin >> vv;
if(vv == '1')
{cout << "Введите сколько создать файлов"; cin >> a; res = files + a;
res = files + a;}
if(vv == '2')
{cout << "Введите сколько удалить файлов"; cin >> a; res = files - a;
res = files - a;}
if(vv == '0') return resursefunction();
files = res;
return disc_D();}
int disc_E()
{
int res, a;
char vv;
cout << "E:\\" << endl;
cout << "На диске" << endl;
cout << "7 - папок" << endl;
cout << files << " - файлов" << endl;
cout << "1 - создать файл" << endl;
cout << "2 - удалить файл" << endl;
cout << "0 - назад" << endl;
cin >> vv;
if(vv = '1')
{cout << "Введите сколько создать файлов"; cin >> a; res = files + a;
res = files + a;}
if(vv == '2')
{cout << "Введите сколько удалить файлов"; cin >> a; res = files - a;
res = files - a;}
if(vv == '0') return resursefunction();
files = res;
return disc_E();}
int disc_C()
{int res, a;
char vv;
cout << "C:\\" << endl;
cout << "На диске" << endl;
cout << "5 - папок" << endl;
cout << files << " - файлов" << endl;
cout << "1 - создать файл" << endl;
cout << "2 - удалить файл" << endl;
cout << "0 - назад" << endl;
cin >> vv;
if(vv = '1')
{cout << "Введите сколько создать файлов"; cin >> a; res = files + a;
res = files + a;}
if(vv == '2')
{ cout << "Введите сколько удалить файлов"; cin >> a; res = files - a;
res = files - a; }
if(vv == '0') return resursefunction();
files = res;
return disc_C();}
Еще нашел на форумах. К сожалению форматирование пришлось убить, иначе оно не помещалось целиком
+13
if (axis[0] == vector[0] && axis[1] == vector[1] && axis[2] == vector[2])
{
this->anglex = 0.0f;
}
else if (vector[1] >= 0.0f)
{
this->anglex = 360.0f*(GLfloat)acos(VectorMathf::dotProductf(axis, vector))/(2.0f*PIf);
}
else
{
this->anglex = -360.0f*(GLfloat)acos(VectorMathf::dotProductf(axis, vector))/(2.0f*PIf);
}
Часть либы ES3D (http://sourceforge.net/projects/es3d/).
Кто не понял в чем прикол - все переменные имеют тип float.
+64
int message2 = -1;
for (int i = 0; i < 5; i++)
{
QFile f;
f.setFileName(QString("/var/log/messages.") + QString::number(i));
if (f.exists())
{
message2 = i;
break;
}
}
if (message2 != -1 )
QFile::copy(QString("/var/log/messages.")+QString::number(message2), QString(NMP_DATA_DIR) + QString("messages.") + QString::number(message2) +"-"+ _section);
Пытается скопировать все файлы /var/log/messages, messages.0, ...
+10
#include <iostream>
#include <list>
#include <queue>
#include <memory>
#include <mutex>
#include <condition_variable>
#include <type_traits>
#include <assert.h>
using namespace std;
template<class Data>
class UnboundedQueueForNonThrowMovable
{
static_assert(std::is_nothrow_move_constructible<Data>::value, "Data must be nonthrow movable type.");
static_assert(!std::is_array<Data>::value, "Data must not be c-array.");
public:
typedef Data value_type;
private:
typedef std::queue<Data, std::list<Data>> Queue;
typedef std::unique_lock<std::mutex> Lock;
Queue _queue;
std::mutex _lockQueue;
std::condition_variable _pushToQueue;
UnboundedQueueForNonThrowMovable(const UnboundedQueueForNonThrowMovable&) = delete;
UnboundedQueueForNonThrowMovable(UnboundedQueueForNonThrowMovable&&) = delete;
UnboundedQueueForNonThrowMovable& operator=(const UnboundedQueueForNonThrowMovable&) = delete;
UnboundedQueueForNonThrowMovable& operator=(UnboundedQueueForNonThrowMovable&&) = delete;
public:
UnboundedQueueForNonThrowMovable(void){}
void push(Data&& data)
{
Lock lockerQueue(this->_lockQueue);
this->_queue.push(std::move(data));
this->_pushToQueue.notify_all();//_condition.notify_one(); most optimal, but can cause deadlock.
}
void push(Data& data)
{
this->push(std::move(data));
}
bool emptyUnstable(void) const
{
Lock lockerQueue(this->_lockQueue);
return this->_queue.empty();
}
Data pop(void)
{
Lock lockerQueue(this->_lockQueue);
this->_pushToQueue.wait(lockerQueue, [this](void){return !this->_queue.empty();});
assert(!this->_queue.empty());
Data result = std::move(this->_queue.front());
this->_queue.pop();
return result;
}
template< class Rep, class Period>
Data pop(const std::chrono::duration<Rep, Period> WaitDuration)
{
Lock lockerQueue(this->_lockQueue);
if(!this->_pushToQueue.wait(lockerQueue, WaitDuration, [this](void){return !this->_queue.empty();}))
return Data();
assert(!this->_queue.empty());
Data result = std::move(this->_queue.front());
this->_queue.pop();
return result;
}
};
template<class Data>
using UnboundedQueueForUniquePtr = UnboundedQueueForNonThrowMovable<std::unique_ptr<Data>>;
template<class Data>
using UnboundedQueueForSharedPtr = UnboundedQueueForNonThrowMovable<std::shared_ptr<const Data>>;
template<class Data>
using UnboundedQueue = UnboundedQueueForUniquePtr<Data>;
int main() {
cout<<"ok"<<endl;
{
//UnboundedQueueForSharedPtr<int>::value_type == std::shared_ptr<const int>
UnboundedQueueForSharedPtr<int> queueSharedPtr;
//auto a = std::make_shared<const int>(45);
auto a = std::make_shared<int>(45);
assert(a);
queueSharedPtr.push(a);
assert(!a);//Fired if you use "auto a = std::make_shared<int>(45)" below. It is compiler bug, I think, because previus code line must cause compile error.
auto b = queueSharedPtr.pop();//std::shared_ptr<const int>
assert(b);
cout<<*b<<endl;
assert(*b==45);
http://ideone.com/qdsWJi
Немного глупый вопрос, почему в 90 строчке не получаем ошибку компиляции если закомментировать 87-ую строку и разкомментировать 88-ую?
+7
auto r = [&](){
for(auto i: a)
if(i==k)
return f(i);
}();
Однажды мне знакомый рассказывал, что во многих языках плохие грязные циклы. Мол настоящие чистые циклы должны возвращать значение. Я написал ему вот это. Он многозначительно подумал и замолчал. Через две с половиной недели он уволился.
+15
normalize((a+b)/2)