center_pt = *new Point(x/size, y/size);
center_pt = Point(x/size, y/size);
class Geolocator {
public:
Point coords;
bool isReliable;
Geolocator() : coords(0,0), isReliable(false) {}
void getFromSensor() {
coords = Point(100, 100);
isReliable = true;
}
};
class Geolocator {
public:
std::unique_ptr<Point> coords;
void getFromSensor() {
Point pt(100, 100);
if (coords) {
*coords = pt;
} else {
coords.reset(new Point(pt));
}
// а если и операции = у Point нет, то можно
// coords.reset(new Point(100, 100));
}
void declareUnreliable() {
coords.reset();
}
};
bool isPreciseFloat(unsigned long long n)
{
// Простейшая проверка: стираем нижние 24 бита
// Если в них вписываемся — ДА.
unsigned long long n1 = n & ~((1ULL << 24) - 1);
if (n1 == 0)
return true;
// Получаем верхнюю единицу
// (можно также двоичным поиском, но я этого с листа не напишу)
while (true) {
unsigned long long n2 = n1 & (n1 - 1);
if (n2 == 0)
break;
n1 = n2;
}
// Получаем маску всего, что ниже 23 бит от верхнего бита.
n1 >>= 23;
--n1;
// Проверяем по маске
return (n & n1) == 0;
}
99900000000000
+ 1,00
-----------------
9990 → 9,99e13
99900000000000
+ 50000000000
-----------------
9995 → 1,00e14 → переполнение
QApplication a(argc, argv);
FmAutoriz au;
std::unique_ptr<SomeConnection> connection = au.exec(); // SomeConnection и exec придётся написать
if (connection) {
FmMain m(connection);
m.show();
return a.exec();
} else {
return 0;
}
std::unique_ptr<SomeConnection>FmAutoriz::exec()
{
bool b = QDialog::exec();
if (b) {
return std::move(this->connection);
// connection — поле FmAutoriz.
// Такой же unique_ptr, в обработчиках кнопок пытаемся создать соединение.
} else {
return nullptr;
}
}
void FmAutorize_on_btOk_click()
{
connection = new SomeConnection();
if (connection.connect(someLogin, somePassword)) {
accept();
} else {
// сообщи об ошибке
}
}
QHeaderView* header = ui->tableView->verticalHeader();
QWidget* viewport = header->viewport();
int i1 = header->logicalIndexAt(0);
int i2 = header->logicalIndexAt(viewport->height() - 1);
if (i2 < 0)
i2 = header->count() - 1;
QString s = QString::number(i1) + " - " + QString::number(i2);
ui->lbResult->setText(s);
return m_tableView->viewport()->height() / m_tableView->rowHeight(0);
(rbv<false, true, true> << 1) + false
.(rbv<true, true> << 1) + false
.(rbv<true> << 1) + true
.if (i == k)
return true;
else if (i != k)
return false;
else
return !true && !false;
return (i==k);
void Backtracking(int currX, int &nFound, int boardSize, int queenY[])
void writeEnum(st::Stream& st, int value, const char* names[]) {}
enum class Letter { A, B, C, …, Z, NN };
const char* natoNames[static_cast<int>(Letter::NN)] = { "alpha", "bravo", "charlie", … };
writeEnum(someStream, static_cast<int>(Letter::E), natoName);
void trim(const char*& beg, const char*& end);
struct ParasiteString { const char *beg, *end; };
wchar_t* myFtos(double value, wchar_t* buf, const FloatFormat& format) {}
wchar_t buf[100];
myFtos(100.500, buf, FloatFormat::NICE);
const unsigned char picture[] = { };
import QtQuick 2.9
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
flags: Qt.Window | Qt.FramelessWindowHint // <<<<<<
Text {
id: text1
x: 77
y: 59
text: qsTr("Test!!!")
font.pixelSize: 12
}
}
#include <file>
#include "file"