Size: a a a

2020 July 21

TS

Till Schneider in supapro.cxx
Просто ты видимо не все скачал
источник

t

tamtakoe in supapro.cxx
Till Schneider
Просто ты видимо не все скачал
Всё скачал. Там два файла всего с кодом в папке pretty_print
источник

t

tamtakoe in supapro.cxx
pprint сразу заработал. Там один файл, правда
источник

TS

Till Schneider in supapro.cxx
tamtakoe
Всё скачал. Там два файла всего с кодом в папке pretty_print
Ну смотри, там есть AppVeyor который показывает, что сборка прошла успешно на студийном компиляторе
источник

TS

Till Schneider in supapro.cxx
tamtakoe
Всё скачал. Там два файла всего с кодом в папке pretty_print
А еще надо было убедиться, что версию из master брал
источник

TS

Till Schneider in supapro.cxx
tamtakoe
Всё скачал. Там два файла всего с кодом в папке pretty_print
Можешь скинуть папку проекта в личку, я гляну что там у тебя
источник

Т8

Т-34 85 in supapro.cxx
Mr.Mait
Если ты хочешь принимать енум в функцию и больше ничего, то вот так делай
template<typename T>
using isEnum = std::enable_if_t<std::is_enum<T>::value>;

template<typename T, typename = isEnum<T>>
static QString enumToQString(const T &value)
   {
  .....
   }

или с++ 17
        
template<typename T>
concept Enum = std::is_enum_v<T>;

template<Enum E>
QString enumToQString(E value) {...}
Спасибо, интересная штука! Правда, я хотел другое. Запретить либо неявно кастовать unscoped enum к целому либо хотя бы запретить неявный вызов converting constructor. К сожалению, и то, и то нереально.

проблема в том, что можно в  QString::contains() передать Qt::CaseSensitive, и это скомпилится (просто забыл передать строку первым аргументом, по-хорошему должна быть ошибка компиляции)! А всё потому, что enum преспокойно неявно кастится к int, у ктора QChar есть перегрузка с параметром int, ну а у QString есть перегрузка contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive). И я что-то ничего и не придумал лучше, кроме как подождать релиза Qt 6, в котором энумы должны сделать типобезопасными.
источник

Т8

Т-34 85 in supapro.cxx
Till Schneider
зависит от задачи, может простой самописный макрос поможет
спасибо, возьму на заметку. Но данный вопрос не решит, к сожалению
источник

s

std::slavik in supapro.cxx
tamtakoe
Еще нет. Там вроде как сериализация только
так а разве не это надо?
источник

s

std::slavik in supapro.cxx
получить структуру данных которая без копирования и в js и в c++ читается
источник

AF

Aidar Fattakhov in supapro.cxx
Т-34 85
Спасибо, интересная штука! Правда, я хотел другое. Запретить либо неявно кастовать unscoped enum к целому либо хотя бы запретить неявный вызов converting constructor. К сожалению, и то, и то нереально.

проблема в том, что можно в  QString::contains() передать Qt::CaseSensitive, и это скомпилится (просто забыл передать строку первым аргументом, по-хорошему должна быть ошибка компиляции)! А всё потому, что enum преспокойно неявно кастится к int, у ктора QChar есть перегрузка с параметром int, ну а у QString есть перегрузка contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive). И я что-то ничего и не придумал лучше, кроме как подождать релиза Qt 6, в котором энумы должны сделать типобезопасными.
Все потомучтот кьют древний
источник

t

tamtakoe in supapro.cxx
std::slavik
получить структуру данных которая без копирования и в js и в c++ читается
Это уже реализовано средствами n-api. Мне, по-сути, из одной структуры данных в другую перегнать нужно
источник

AF

Aidar Fattakhov in supapro.cxx
tamtakoe
Это уже реализовано средствами n-api. Мне, по-сути, из одной структуры данных в другую перегнать нужно
Ты хочешь десереализовать или всё-таки жсон?
источник

s

std::slavik in supapro.cxx
Aidar Fattakhov
Все потомучтот кьют древний
а щас им кто владеет? раньше нокиа была
источник

s

std::slavik in supapro.cxx
Aidar Fattakhov
Ты хочешь десереализовать или всё-таки жсон?
я тоже не пойму
источник

s

std::slavik in supapro.cxx
зачем эти движухи
источник

Т8

Т-34 85 in supapro.cxx
Aidar Fattakhov
Все потомучтот кьют древний
нет, Qt 5 не древний, просто его начинали пилить до C++11, поэтому поддержка новых фичи добавлялась ограниченно. Qt 6 будет на C++17 стандарте
источник

AF

Aidar Fattakhov in supapro.cxx
Т-34 85
нет, Qt 5 не древний, просто его начинали пилить до C++11, поэтому поддержка новых фичи добавлялась ограниченно. Qt 6 будет на C++17 стандарте
Да я так и сказал он древний
источник

AF

Aidar Fattakhov in supapro.cxx
Короче нафиг совместимость с си++98
источник

AF

Aidar Fattakhov in supapro.cxx
std::slavik
а щас им кто владеет? раньше нокиа была
Вроде он сам
источник