explicit MainForm(QWidget *parent = nullptr)
: QMainWindow (parent)
, mainWindow(new Ui::MainWindow)
{
mainWindow->setupUi(this);
}
я возможно не так задал вопрос. хотелось бы узнать, почему компилятор не может все проверить на этапе компиляции. зачем еще добавлять динамическую проверку?
class Object {
public:
virtual ~Object() {}
};
class Weapon : public Object {
public:
virtual ~Weapon() {}
};
class Player : public Object {
public:
virtual ~Player() {}
};
void handleObject(Object* object) {
// What is object? Is it weapon or player?
};
// ....
Object* object = rand() % 100 > 50 ? new Weapon() : new Player();
handleObject(object);
//Установим глобальную локаль для вывода не acsii символов в консоль и выходной wofstream
std::locale::global(std::locale(""));
//Открываем входной файл на чтение
std::wifstream wif("input.txt");
//Проверяем, что файл открылся
if (!wif.is_open()) {
std::wcout << L"Входной файл не доступен для чтения.\nНажмите любую клавишу для завершения." << std::endl;
_getch();
std::exit(1);
}
//Устанавливаем локаль для чтения не acsii символов
wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
//Создаем временный поток
std::wstringstream wss;
//Читаем входной файл во временный поток
wss << wif.rdbuf();
//Преобразуем поток в строку
std::wstring s = wss.str();
#include <string>
#include <fstream>
#include <iostream>
#include <sstream>
#include <locale>
#include <codecvt>
#include <conio.h>
std::locale::empty()
Компилятор выдает ошибку "empty is not a member of std::locale"
wif.imbue(std::locale(std::locale(), new std::codecvt_utf8<wchar_t,0x10ffff, std::consume_header>));
static std::locale empty;
wif.imbue(std::locale(empty, new std::codecvt_utf8<wchar_t,0x10ffff, std::consume_header>));
retValue = NtCreateFile