- 1
- 2
- 3
- 4
- 5
#include "server.h"
const server::CServer s(8085, 1111);
int main() {return 0;}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+125
#include "server.h"
const server::CServer s(8085, 1111);
int main() {return 0;}
http://habrahabr.ru/post/213301/
От автора http://govnokod.ru/14526
>И еще на мой взгляд, функция main() — атавизм, доставшийся программистам от СИ. В С++ она лишняя. Но компиляторы пока этого не знают к сожалению.
>Но я решил «наказать» эту ненужную функцию, отобрав у нее возможность что-либо сделать — изменил файл serv.cpp следующим образом
+115
Сколько помнишь пятен солнца,
Сколько раз горел в огне?
Сколько раз ты изгнан вон был,
Сколько раз ты гнил во тьме?
За богохульство был распят Иисус,
За вольнодумие стреляют и сжигают,
Прикованный к кресту я молча обоссусь,
Но вам не вымолить из губ моих
Признаний
Ватикан - мразь и твари,
Переходы полнит кровь,
Здесь кичатся билетом до рая...
Купленным ценою слёз,
Свет ста тысяч ртутных ламп,
Боль ста тысяч рваных ран,
Вот наверное и всё...
Дьявол вновь берет своё
Тлен смыкает свои пальцы,
Сдавливая горло мне,
Призраки немых скитальцев,
Как и ты, горят в огне,
Павшие в провалы ночи,
Мы не смеем попрекать
Иисуса, его дочерь,
Делят что одну кровать
За доброту был скован Прометей,
И за радушие еще пока сажают,
Топчите труп мой, брошенный, в говне,
Но вам не вымолить из губ моих
Признаний
Паутина склепа давит
На кровавые глаза,
Здесь никто ничто не знает,
Но желает показать
Как он чтит и как страдает,
Как дарует благодать,
В самом низменном желаньи,
Перед страхом умирать
Астарты глаза
Видят грех и во тьме,
Громким криком созвав
На суд Бафомэт,
Всего лишь ответы,
Ни пытки, не боль,
Но тех уже нету,
Кто ответит за роль...
Из круга ангелов бы изгнан Сатана,
И по лицу до ныне выбирают,
Я ниц пойду, с булыжником до дна,
И моих тайн никто и не узнает...
Но смерть и боль, жестокая война,
На ложе богородица, не кровью -
Соком истекает,
И над морями изумрудного вина
Кресты так пошло, показушно догорают...
Не знаю почему, но называется это стихотворение "крестоблядство".
Пруф: http://www.stihi.ru/2012/11/23/2001
у автора и спрашивайте, где же здесь С++
+132
template <typename T>class CleverPtr
{
T* ptr;
public:
~CleverPtr () { delete ptr; }
CleverPtr () : ptr(new T) {}
CleverPtr(const CleverPtr& other)
:ptr(new T) // <--- если напрягает, используйте делегирующий конструктор с++11
{
operator =(other);
}
CleverPtr& operator = (const CleverPtr& other)
{
if (this != &other)
*ptr = *other.ptr;
return *this;
}
};
оттуда
+138
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
+141
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
ХУЙ ПИЗДА ЕБАНАЯ ДЖИГУРДА И СКОВОРОДА
АДМИНИСТРАТОР ВИО ДРОЧИТ НА ДЖАСТИНА БИБИРА ОБМАЗАВШИСЬ ГОВНОМ
МОДЕРАТОРЫ ВИО ЖРУТ ГОВНО АДМИНА ВИО
+51
#include<iostream>
#include<istream>
#include<fstream>
#include<string>
using namespace std;
const int con=100;
const int MAX=3;
class movie
{
public:
string title;
string genre;
string country;
int year;
double gainings;
};
int main(); {
{
string* argv = new string[10]={ "Star wars", "Harry Potter" , "Lion king", "Lord of the rings" , "Evgozavur", "Cow's house" , "Snow dogs", "Ice age" , "Shrek", "Dino"};
int n=1,gainigs=10;
int a,b,c;
movie film1;
movie film2;
movie film3;
cout << " Enter the title:"<<endl;
cin>>film1.title;
cout << " Enter the genre:"<<endl;
cin>>film1.genre;
cout << " Enter the country:"<<endl;
cin>>film1.dev;
cout << " Enter the year:"<<endl;
cin>>film1.year;
cout << " Enter the gainings:"<<endl;
cin>>a;
while (a>10){
cout << " Enter the gainings:"<<endl;
cin>>a;
}film1.gainings=a;
cout<<endl<<endl<<endl;
cout<<" Enter the title:"<<endl;
cin>>film2.title;
cout<<" Enter the genre:"<<endl;
cin>>film2.genre;
cout<<" Enter the dev:"<<endl;
cin>>film2.dev;
cout<< " Enter the year:"<<endl;
cin >> film2.year;
cout<<" Enter the gainings:"<<endl;
cin>>b;
while (b>10){
cout<<" Enter the gainings:"<<endl;
cin>>b;
}game2.gainings=b;
cout<<endl<<endl<<endl;
cout<<" Enter the title:"<<endl;
cin>>film3.title;
cout<<" Enter the genre:"<<endl;
cin>>film3.genre;
cout<<" Enter the dev:"<<endl;
cin>>film3.dev;
cout<<" Enter the year:"<<endl;
cin>>film3.year;
cout<<" Enter the gainings:"<<endl;
cin>>c;
while (c>10){
cout<<" Enter the gainings:"<<endl;
cin>>c;
}film3.gainings=c;
for (int j=0; j<n; j++)
{
cout<<""<<endl;
cout<<"Title: " <<film1.title<<endl;
cout<<"Genre: " <<film1.genre<<endl;
cout<<"Year: " <<film1.year<<endl;
cout<<"Gainings: "<<film1.gainings<<endl;
cout<<""<<endl;
cout<< "Title: "<<film2.title<<endl;
cout<< "Genre: "<<film2.genre<<endl;
cout<< "Year: "<<film2.year<<endl;
cout<< "Gainings: " << film2.gainings<<endl;
cout<<""<<endl;
cout<<"Title: " <<film3.title <<endl;
cout<<"Genre: " <<film3.genre <<endl;
cout<<"Year: " <<film3.year <<endl;
cout<<"Gainings: "<<film3.Gainings<<endl;
cout<<"works"<<endl;
}
cout<<"printing works"<<endl;
argv[0]=film1.title;
argv[1]=film1.genre;
argv[2]=film1.year;
argv[3]=film1.gainings;
cout<<"adding works"<<endl;
cout<<endl<<endl<<endl;
cout<<argv[0]<<endl;
cout<<argv[1]<<endl;cout<<argv[2]<<endl;cout<<argv[3]<<endl;
cout<<"print after add works"<<endl;
system("pause");
return 0;
}
Из http://forums.bgdev.org/index.php?showtopic=43872
+59
#ifndef PORT_H_
#define PORT_H_
#define MAKE_PORT(portName, ddrName, pinName, className, ID) \
class className{\
public:\
typedef uint8_t DataT; /* Alias for the type of data port*/\
private:\
static volatile DataT &data()\
{\
return portName;\
}\
static volatile DataT &dir()\
{\
return ddrName;\
}\
static volatile DataT &pin()\
{\
return pinName;\
}\
public:\
static void Write(DataT value) /*Write value to port PORT = value*/\
{\
data() = value;\
}\
static void ClearAndSet(DataT clearMask, DataT value) /*Clear by mask and set PORT = (PORT & ~clearMask) | value */\
{\
data() = (data() & ~clearMask) | value;\
}\
static DataT Read() /*Read the value written to the port*/\
{\
return data();\
}\
static void DirWrite(DataT value)/*Record the value of the direction of the lines I/O */\
{\
dir() = value;\
}\
static DataT DirRead() /*Read the value of the direction of the lines I/O */\
{\
return dir();\
}\
static void Set(DataT value) /*Set bits in the port PORT |= value;*/\
{\
data() |= value;\
}\
static void Clear(DataT value) /*Clear bits in the port PORT &= ~value;*/\
{\
data() &= ~value;\
}\
static void Togle(DataT value) /*Switch bits PORT ^= value;*/\
{\
data() ^= value;\
}\
static void DirSet(DataT value) /*Set direction bits*/\
{\
dir() |= value;\
}\
static void DirClear(DataT value) /*Clear direction bits*/\
{\
dir() &= ~value;\
}\
static void DirTogle(DataT value)\
{\
dir() ^= value;\
}\
static DataT PinRead()\
{\
return pin();\
}\
enum{Id = ID};\
enum{Width=sizeof(DataT)*8};/*Bit depth*/\
};
#ifdef PORTA
MAKE_PORT(PORTA, DDRA, PINA, Porta, 'A');
#endif
#ifdef PORTB
MAKE_PORT(PORTB, DDRB, PINB, Portb, 'B');
#endif
#ifdef PORTC
MAKE_PORT(PORTC, DDRC, PINC, Portc, 'C');
#endif
#ifdef PORTD
MAKE_PORT(PORTD, DDRD, PIND, Portd, 'D');
#endif
#endif /* PORT_H_ */
Использование СИ++ в микроконтроллерах доставляет....
+43
/*
* encoding.cpp
*
* Created on: Oct 25, 2012
* Author: root
*/
+2
void KateQuickOpen::update () {
// пропущено
QModelIndex idxToSelect;
int linecount = 0;
QMapIterator<qint64, KTextEditor::View *> i2(sortedViews);
while (i2.hasNext()) {
i2.next();
KTextEditor::Document *doc = i2.value()->document();
if (alreadySeenDocs.contains(doc))
continue;
alreadySeenDocs.insert (doc);
QStandardItem *itemName = new QStandardItem(doc->documentName());
itemName->setData(qVariantFromValue(QPointer<KTextEditor::Document> (doc)), DocumentRole);
itemName->setData(QString("%1: %2").arg(doc->documentName()).arg(doc->url().pathOrUrl()), SortFilterRole);
itemName->setEditable(false);
QFont font = itemName->font();
font.setBold(true);
itemName->setFont(font);
QStandardItem *itemUrl = new QStandardItem(doc->url().pathOrUrl());
itemUrl->setEditable(false);
base_model->setItem(linecount, 0, itemName);
base_model->setItem(linecount, 1, itemUrl);
linecount++;
if (!doc->url().isEmpty() && doc->url().isLocalFile())
alreadySeenFiles.insert (doc->url().toLocalFile());
// select second document, that is the last used (beside the active one)
if (linecount == 2)
idxToSelect = itemName->index();
}
// get all open documents
QList<KTextEditor::Document*> docs = Kate::application()->documentManager()->documents();
foreach(KTextEditor::Document *doc, docs) {
// skip docs already open
if (alreadySeenDocs.contains (doc))
continue;
QStandardItem *itemName = new QStandardItem(doc->documentName());
itemName->setData(qVariantFromValue(QPointer<KTextEditor::Document> (doc)), DocumentRole);
itemName->setData(QString("%1: %2").arg(doc->documentName()).arg(doc->url().pathOrUrl()), SortFilterRole);
itemName->setEditable(false);
QFont font = itemName->font();
font.setBold(true);
itemName->setFont(font);
QStandardItem *itemUrl = new QStandardItem(doc->url().pathOrUrl());
itemUrl->setEditable(false);
base_model->setItem(linecount, 0, itemName);
base_model->setItem(linecount, 1, itemUrl);
linecount++;
if (!doc->url().isEmpty() && doc->url().isLocalFile())
alreadySeenFiles.insert (doc->url().toLocalFile());
}
// insert all project files, if any project around
if (Kate::PluginView *projectView = m_mainWindow->mainWindow()->pluginView ("kateprojectplugin")) {
QStringList projectFiles = projectView->property ("projectFiles").toStringList();
foreach (const QString &file, projectFiles) {
// skip files already open
if (alreadySeenFiles.contains (file))
continue;
QFileInfo fi (file);
QStandardItem *itemName = new QStandardItem(fi.fileName());
itemName->setData(qVariantFromValue(KUrl::fromPath (file)), UrlRole);
itemName->setData(QString("%1: %2").arg(fi.fileName()).arg(file), SortFilterRole);
itemName->setEditable(false);
QFont font = itemName->font();
font.setBold(true);
itemName->setFont(font);
QStandardItem *itemUrl = new QStandardItem(file);
itemUrl->setEditable(false);
base_model->setItem(linecount, 0, itemName);
base_model->setItem(linecount, 1, itemUrl);
linecount++;
}
}
// swap models and kill old one
m_model->setSourceModel (base_model);
delete m_base_model;
m_base_model = base_model;
// пропущено
}
Адская копипаста. У меня мозг сегфолтится при попытке ее формализировать.
https://projects.kde.org/projects/kde/applications/kate/repository/revisions/master/entry/kate/app/katequickopen.cpp#L135
+58
template <typename T>
class MySharedPtr{
public:
explicit MySharedPtr(T* obj) : _obj(obj){}
// --> я дописал
MySharedPtr(const MySharedPtr& other) : _obj(other._obj){ inc_ref_count(_obj);}
// <-- я дописал
MySharedPtr& operator=(const MySharedPtr& other) {
// --> я дописал
if (this == &other)
return *this;
// <-- я дописал
_obj = other._obj;
inc_ref_count(_obj);
}
~MySharedPtr(){
dec_ref_count(_obj);
}
private:
static void inc_ref_count(T* obj){
std::lock_guard<std::mutex> lock(_mutex);
_ref_count[obj] ++ ;
}
static void dec_ref_count(T* obj){
std::lock_guard<std::mutex> lock(_mutex);
if (--_ref_count[obj]){
delete obj;
_ref_count.erase(_ref_count.find(obj));
}
}
T* _obj;
static std::mutex MySharedPtr<T>::_mutex;
static std::map<T*,int> MySharedPtr<T>::_ref_count;
};
template <typename T>
std::map<T*,int> MySharedPtr<T>::_ref_count;
template <typename T>
std::mutex MySharedPtr<T>::_mutex;
сегодня приходил чел-выпускник, написал на листочке shared_ptr, какое ваше мнение?