Задать вопрос
  • Есть ли нативный способ написать GUI на html/css для С++ программ?

    @MarkusD Куратор тега C++
    ettaluni,
    Этот скитер наверняка ограничен и не следует стандартам CSS3\html5 и поддерживает лишь часть функций, крутой интерфейс на нем не сделаешь.

    Я привык к тому, что люди свои заявления подкрепляют доказательствами из достоверных источников. Например из документации продукта. Ты ведь изучил документацию скитера?
    Дополнительно, твои слова требуют обоснования неизбежной необходимости. Важность каждого требования необходимо доказать, даже если это требование явно не удовлетворяется в документах библиотеки. В ином случае требования остаются бездоказательными со всеми вытекающими последствиями.
    По хорошему, ты это все должен не мне, а исключительно и только себе.
  • Есть ли нативный способ написать GUI на html/css для С++ программ?

    @MarkusD Куратор тега C++
    Когда задумываешься об использовании HTML-разметки с CSS-оформлением для разработки пользовательского интерфейса, о браузерах стоит забыть. Рендеринг страниц - это одна из самых небольших функций браузера. И этот рендеринг не подходит для пользовательского интерфейса. Даже концепции рендеринга страниц в браузерах неприменимы для пользовательского интерфейса в приложении.

    В таких системах, как Sciter UI или Coherent Gameface, разметка и стили используются как исходный код интерфейса. Специальный транслятор преобразует HTML и CSS в более подходящие для клиентского кода ресурсы, которые дальше загружаются в приложении для отображения интерфейса.
  • Как вывести текст из data url (data:image/png;base64,.........)?

    @MarkusD Куратор тега C++
    QWERTYUIOPas , а ты точно искал ответы на свой вопрос?
    П2.2 регламента работы сервиса требует чтобы сперва ты убедился в отсутствии ответов на свой вопрос.
    В интернете ответы на этот вопрос имеются в избытке.
  • Как убрать ошибку?

    @MarkusD Куратор тега C++
    QWERTYUIOPas, покажи сценарий сборки своего проекта.
  • Как сделать покороче это условие (работа с битами)?

    @MarkusD Куратор тега C++
    NQUARE, и как же этот макрос определен?

    Оно?
    #define bRead(value, bit) (((value) >> (bit)) & 0x01)


    Это не оптимально выбранная запись. Макрос в этом месте не нужен, нужна встраиваемая функция. Сдвигать стоит не значение, а маску бита, это позволит делать оптимизации из расчета на константный номер бита.
    Имя макроса выбрано очень плохо, у макросов другой стиль именования. Сейчас имя напоминает венгерскую нотацию и вводит в заблуждение.

    Встраиваемая функция с описанным мной поведением будет иметь возможность оптимизироваться до одной операции с битовой маской. Например.
  • Что за ошибка компилятора c++ в Borland?

    @MarkusD Куратор тега C++
    yaroslavklimuk , это не ошибка компиляции, это ошибка выполнения.
    У тебя в программе разыменование нуля где-то. Отладчик программу останавливает прямо на строке ошибки.
  • Как получить битовое представление типа double в C++?

    @MarkusD Куратор тега C++
    Фокс Йовович , хочу внести уточнения по подмене типа. С т.з. стандарта Type Punning невозможен между вещественными и целыми. Есть вот такой короткий документ, где это хорошо объясняется.
    Попытка такого приведения типов неминуемо влечет UB. И я понимаю что транслятор может понять определенную форму кода и сделать type punning, в том документе об этом тоже говорится. Просто ровно с той же вероятностью потом транслятор может этого не сделать и внести в код UB. Никаких сообщений от транслятора не будет, будут просто сюрпризы в рантайме.

    Хорошим примером будет использование memcpy для передачи состояния памяти между объектами несовместимых типов.
  • Как получить битовое представление типа double в C++?

    @MarkusD Куратор тега C++
    dmasloff , что ты подразумеваешь под битовым представлением типа?
  • В чем может быть ошибка?

    @MarkusD Куратор тега C++
    https://qna.habr.com/user/ggbet и https://qna.habr.com/user/iamrestik - это два аккаунта одного человека.
    Данный вопрос был удален с профиля ggbet и опубликован повторно с профиля iamrestik. И пользователь сам этого не скрывает.
    П6.5 регламента работы сервиса запрещает создание нескольких учетных записей.
  • Как сделать покороче это условие (работа с битами)?

    @MarkusD Куратор тега C++
    NQUARE , if( ( map & 0x3E ) == 0 ).

    Семантику операторов менять очень опасно. Оператор ! имеет булеву семантику. Если bRead объявлена не как bool bRead( ... ), то использование оператора ! будет вводить людей в заблуждение. Функция называется b-Read, в которой, согласно Венгерской нотации, b означает тип результата bool. Слово Read означает действие, относительно которого возвращаемое булево значение обычно воспринимается как успешность совершения действия: получилось или нет сделать Read.
    И если при этом функция, внезапно, возвращает считанный бит и b тоже означает Бит (или, чего еще хуже, функция возвращает бит в виде значения bool), то пользователь это поймет не сразу. Особенно когда перед bRead стоит оператор ! и все условие выглядит как проверка на то, что следующие 5 бит после первого прочитать не удалось.
    И именно по этой же причине запись условия выглядит как ( map & 0x3E ) == 0, это однозначно и понятно читается. Скобки ставят акцент действия и знание порядка операторов тут не при чем.
  • Как при помощи кликов по клаве можно организовать клики на правую кнопку мыши?

    Foraho , и при чем тут тег C++?
    Стандарт C++ никак не определяет устройства вроде клавиатуры и мыши.
  • Как скомпилировать c++ код для JNI?

    @MarkusD Куратор тега C++
    sanek2005, так почему бы тебе не сформировать проект динамической библиотеки в MSVC++, собрать dll с твоим кодом и положить ее куда тебе необходимо?
    Пример старый, но понимание необходимых действий дает.
  • Как скомпилировать c++ код для JNI?

    @MarkusD Куратор тега C++
    sanek2005 , а где ты писал свой C++ код?
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames,
    Оговорка - не из стандарта. ... Правильную и неправильную реализацию формализовать нельзя (без явной аттрибуции), потмоу что и тот и тот код может быть верным в зависимости от "оговорок".

    а ведь ты мог бы просто согласиться с тем, что твое изложение идет с т.з. некоторой этики разработки. ... Ты оперировал на уровне некоторой смысловой надстройки над стандартом, созданной с учетом изложения стандарта.

    Мне не с чем соглашаться.

    Я все правильно понял?

    Вообще, я очень надеюсь, что в стандарте это помечено как UB.

    Нет, это стандартный код, с ним нет проблем на уровне стандарта.
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames, куча оговорок - это и есть смысловые надстройки, о которых нет речи на уровне стандарта. Или, если ты имеешь в виду оговорки прямо в стандарте, то стоит привести их прямые цитаты.
    Покажи точную цитату из стандарта, которая однозначно описывает что твое Б не выполняется при определении поля с типом указателя.
    Пока все выглядит иначе твоих слов.
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames, а ведь ты мог бы просто согласиться с тем, что твое изложение идет с т.з. некоторой этики разработки. Ведь именно это на самом деле и происходило. Ты оперировал на уровне некоторой смысловой надстройки над стандартом, созданной с учетом изложения стандарта. И ведь я трижды дал понять что не против этого. Для меня важно только провести границу.

    Чрезмерная опека, чем и являются подобные смещения смысловых надстроек в область стандартов, всегда приводит людей к бессознательному соблюдению определенных ритуалов. Своеобразный карго-культ. В результате, конкретно в этой ситуации, слабо квалифицированный человек может прочитать твои слова и подумать что он вообще и всегда будет защищен со стороны std::is_trivial. И это будет ошибкой.
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames,
    Именно поэтому я даже предположить не мог, что объект с указателем формально может считаться тривиальным.

    Это изложено в стандарте или это продиктовано какой-либо формой этики? Если это изложено в стандарте, то нужны цитаты с точно такой же передачей смысла.

    Если объект владеет адресуемым объектом, то, в корректно реализованном объекте, согласно стандарту, адресуемый объект находится по значению, т.е. расположен в памяти своего хозяина и имеет характеристику жизни своего хозяина. Только так стандарт определяет владение.
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames, указатель является скаляром, т.е. тривиален. Наличие поля с типом указателя в составном типе не приводит к ошибке трансляции если для составного типа не определены необходимые конструкторы. Стандарт не форсирует пользователя отказываться от тривиальности определяемого типа на основании только лишь того, что в составе типа есть указатели.

    Повторюсь что я легко могу понять твое утверждение на уровне концепций разработки, уже выше формальных правил стандарта. Однако изначально я говорил только в рамках формальных правил стандарта и просил тебя дать информацию только в рамках стандарта.
    В качестве примера. Формальные правила стандарта не запрещают тебе делать битовый сдвиг вправо для целого числа, но если число будет отрицательным, стандарт формально говорит что дальнейшее поведение программы не определено. Это уже на более высоком уровне мы строим логические правила и договариваемся не сдвигать отрицательные целые, т.к. будет UB.
    Разделять важно, т.к. в иной ситуации опираясь на логические правила ты можешь ошибиться в изложении формального кода и транслятор эту ошибку не обозначит.
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames,
    Если он владеет объектом, то, по определению (из данной вами ссылки), не может быть тривиальным, потому что у него будет нетривиальный конструктор копирования и деструктор (не рассматриваем вариант с утечкой памяти).

    Это утверждение требует точной ссылки на цитату в стандарте.
  • Будет ли это являться сериализацией?

    @MarkusD Куратор тега C++
    maaGames,
    Сам по себе указатель - тривиальный тип

    Да, по приведенным мной ссылкам это написано.
    но класс, содержащий указатель (и владещющий адресуемым объектом) не является тривиальным типом.

    Но вот этого там не написано.

    Я понимаю если ты высказываешь это правило на уровне выше стандарта, на уровне логики и концепций разработки кода. И на этом уровне с подобным правилом можно как согласиться, так и не согласиться в зависимости от обстоятельств.
    Но если ты цитируешь стандарт или документацию, то будет хорошо дать точную цитату и ее исходное размещение. Поэтому я и попросил тебя о документе.

    Сейчас, согласно стандарту, я знаю что тривиальность составного типа выводится из тривиальности его конструкторов. Тривиальность конструкторов подтверждается через тривиальность типов полей рассматриваемого составного типа.
    Указатель является тривиальным т.к. является скаляром, значит его наличие в составном типе разрешает типу оставаться тривиальным.
    Это не дает лично мне опираться на формальную тривиальность типа при написании некоторого обобщенного кода. Поэтому если у тебя есть точная информация из стандарта или документации, которую я мог упустить, то я буду рад если ты ей поделишься.