Задать вопрос
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe, ну, скажу честно, я сразу увидел, еще по вопросу, что навыков работы с этим кодом у тебя прямо нет. Были подозрения что ты чему-то на этом коде учишься. Может быть на плюсах работать, может быть с Godot разбираешься.
    Ну да ладно.

    Вот что я скажу. Ни один из ответов не решает твой вопрос вообще. У Wataru не костыль, но для твоего вопроса это не решение и не метод. Если навыков работы с obj-c/c/c++ у тебя мало, то завязывай терзать труп. Я так уж точно здесь умываю руки.
    Если эта штука тебе все-таки нужна, то предлагаю сходить на фриланс и оплатить профессионалу восстановление работоспособности кода.
    Разведение зависимостей в разный код и установка в этом коде моста является вообще единственным решением здесь.
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe,
    все конструкции, которые нужны, описаны здесь

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

    Вижу что ты описал только сторону Webkit. А что насчет используемых конструкций из Godot?
    Сейчас твоей целью является аналитически определить, каких зависимостей в webview_wk.mm больше: от Webkit или от Godot. Также важно оценить и качества этих зависимостей, насколько они сильно влияют на код webview_wk.mm.
    Зависимости эти ты будешь разводить в разные стороны. У тебя будет один файл с зависимостью на Webkit и второй - с зависимостью на Godot. Под вопросом сейчас стоит только методика разведения зависимостей.
    Все зависит от твоих ответов.
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe, с тикетом на гитхабе я ознакомлен.
    Тебе стоило сразу же писать конкретно о своей ситуации, так и вопросов к тебе было бы меньше, и ответы бы сразу верные пошли.
    Пока к тебе все еще есть вопросы. Для чего именно в .mm-файле присутствуют заголовки и WebView, и Godot одновременно? Ответ должен быть максимально узким и максимально профильным. Желательно вообще в тезисах определить все конструкции обеих библиотек, которые тебе требуются в этом .mm-файле. Еще важно описать почему тебе требуются именно эти конструкции из обеих библиотек.

    Для твоего вопроса есть несколько решений, но ни один из уже написанных ответов не приводит какое-либо из этих решений. От твоего ответа будет зависеть оптимальность выбора решения. Каждое из решений очень комплексное и требует детального объяснения. Поэтому тратить свое время на изложение всех я не буду. Да и не выберешь ты оптимальное, судя по всему, т.к. тебя нужно провести по критериям через вот такие вопросы.
  • Что стоит учить с или c++ или c#?

    @MarkusD Куратор тега C++
    #, у меня все также. Читаю, вроде бы англицкий текст, а помню на своем родном. Интересно что и обратно это работает, когда надо что-то в документации или стандарте найти.

    Комментарий в ответы перенес. :)
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    tamtakoe, так значит, это Godot и Webkit.
    Какую задачу ты решаешь через одновременное подключение обоих заголовков на стороне obj-c?
  • Как использовать класс, определенный в двух подключаемых файлах?

    @MarkusD Куратор тега C++
    Как в C++ избежать ошибки redefinition of 'Class3' в файле module.mm

    Никак. ODR непреложно.

    У тебя терминология плывет. Тебя люди сейчас не понимают. Имеющиеся ответы тому только подтверждение.
    module1.h экспортирует Class1, Class3

    Что такое "экспортирует"? C++ оперирует только объявлениями и определениями. Исправь свой вопрос согласно терминологии языка.

    В module1.h и module2.h может быть определена куча классов, нам по сути нужно исключить определение Class3 из module1.h для нашего module.mm

    Если менять нельзя, просто выкинь весь этот код. Он не достоин использоваться если в нем нельзя исправлять фундаментальные нарушения стандарта языка.
    В ином случае подобные помойки каждое свое определение заключают в условную компиляцию. Тогда тебе нужно знать макрос, который выключит код определения ненужного тебе типа.
  • Что стоит учить с или c++ или c#?

    @MarkusD Куратор тега C++
    Владислав Калужский , всё как и всегда.
    Начинать нужно всегда с того языка, на котором ты думаешь, разговариваешь в быту и пишешь. С Русского языка. У тебя с ним, видно, все вполне хорошо. Пишешь понятно, мысли за словами прослеживаются.
    Значит нужно двигаться дальше. Следующим языком для тебя должен быть интернациональный. На этом языке идет общение в сообществах и передаются знания, как через книги, так и напрямую. Английским нужно владеть на уровне способности читать без запинки и словарей, также на английском нужно уметь внятно писать. Навыки устного общения будут плюсом, но на этапе обучения сильно не требуются.

    Языки программирования - это инструменты. А инструменты всегда надо выбирать от условий задачи. У тебя не выйдет решать все задачи только каким-то одним языком. Знать во всех тонкостях и уметь использовать строго по назначению Python, Java, C#, C++, Lua, TypeScript и, например, PHP не просто нормально, а важно.
    Бьерн Страуструп один раз говорил о том, что для настоящего инженера важно знать порядка 5 разных языков и разбираться в их особенностях, чтобы считать себя настоящим специалистом.

    Поэтому вообще не важно что ты выберешь на свой первый раз. Качество инженера раскрывается в его умении полноценно владеть множеством инструментов.
  • Как идентифицировать переход результата от положительных значений в отрицательные?

    Canp, любую задачу можно решить десятками самых сложных и витиеватых вариантов. Например, вариантом как у Сережи в ответе или как у тебя в комментарии.
    Но как твою задачу решить качественно? Для этого надо просто подумать.

    Тебе нужно знание места перехода от положительных значений к отрицательным. Это знание в моменте можно получить через признак знака. Именно знание признака, а не знание самого знака.
    А это значит, нам нужен только булев флаг:
    is_negative = d < 0

    Тебе нужно знание только места смены знака, значит тебе надо знать, когда знак был один, а стал - другой.
    А это знание достигается через отслеживание признака знака на дистанции одного шага назад, через второй булев флаг:
    was_negative = is_negative

    Так и происходит формализация твоей потребности в терминах языка.
    was_negative = d < 0
    while d >= -xx:
    	d = x - y
    	x = d
    	
    	is_negative = d < 0
    	if is_negative != was_negative:
    		print('Marked!')
    	was_negative = is_negative
    	
    	print(d)

    Вариант Сережи не формализует твою потребность. Грубо говоря, там просто числа по смыслу подобраны, но твоя задача не решена.
  • Комп или ноут для ue5?

    Владислав Лысков, в сбере личным пользоваться не запретят. Запретят абсолютно любым способом подключать личные тех.средства к корпоративным тех.средствам. При чем запрет будет не просто в ТД вписан, а еще и будет подкреплен штрафами, вызовом к сотрудникам внутренней безопасности и соответствующими мерами со стороны УК.
    Да, людей регулярно садят за уже просто попытку кражи данных. Т.е. вставил мобилу в комп "зарядиться" и пошел сразу на нары.
  • Почему перемещение объявления и инициализации переменной на новую строчку кода влияет на результат работы программы?

    @MarkusD Куратор тега C++
    vurdalaq, чтение неинициализированной переменной вносит неопределенное поведение в программу.
    Всегда, везде, в любом смысле.

    Неопределенным поведением, по стандарту C++, является в принципе и вообще любое поведение без каких-либо ограничений. Ожидаемое поведение тоже в этом случае будет неопределенным.
    Не "X засорится", а поведение всего твоего кода прямо начиная с первого for(unsigned i; i < len; i++) уже не определено. С самой первой же итерации этого цикла, если неопределенному поведению вообще заблагорассудится начать хоть одну итерацию этого цикла.

    Иными словами, UB - это то, чего в своем коде категорически нельзя допускать.
  • Почему возникает ошибка error C4430 в шаблоне, если выходной тип определен?

    @MarkusD Куратор тега C++
    Павел Соколов, вот. И с этим кодом уже все понятно.
    Тебе уже ответили и ответ действительно решающий. Но тем не менее.
    Смотри на WinAPI. Этот заголовок у тебя подключен через конфигурацию проекта и конфигурацию сборки.
    Эти макросы являются частью SAL, а подробности можно почитать тут.

    Твой стиль кода должен быть таким, чтобы не нарушать стандарт и не биться с библиотечными определениями.
  • Почему возникает ошибка error C4430 в шаблоне, если выходной тип определен?

    @MarkusD Куратор тега C++
    Павел Соколов,
    Я не понимаю что я делаю не так

    Ничего страшного. Мы тоже не понимаем что ты делаешь. В смысле, мы вообще не понимаем что ты делаешь.
    С такой подачей вопроса ответить на него разве что гадалка сможет, с соответствующим качеством ответа.

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

    Для шаблона нет разницы, в заголовке к DLL он написан или в каком-либо еще. Шаблон инстанцируется на стадии компиляции и всегда должен быть определен до места своего инстанцирования в модуле трансляции.
  • Как использовать потоки в современном C++ в приложении на основе цикла событий?

    @MarkusD Куратор тега C++
    Andrey_Epifantsev , а как тебе объясняли свои советы те, кто тебе эти std::future и std::async рекомендовали?
    Где они тебе советовали использовать эти примитивы и каким образом это должно улучшить, по их мнению, твой код?
  • Как переделать код под ООП?

    @MarkusD Куратор тега C++
    Sunter , а зачем этот код переделывать под ООП?
  • Что за странная запись в С++?

    @MarkusD Куратор тега C++
    Вова, я работаю с C++ уже 20 лет и просто знаком со стандартом языка. Понимаю что подобное знание является довольно тонким для обычного пользователя C++, но именно подобные знания позволяют людям не допускать огромное количество ошибок.
    Ну и еще работать в крутую компанию не возьмут без понимания стандарта.
  • Как правильно инициализировать константы в namespace в *.h *.cpp?

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

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

    В любом случае. Этот твой вопрос решен, единственный ответ дает тебе решение, хоть и не объясняет почему extern решает проблему.
    Все остальное - дело уже другого вопроса.
  • Как правильно инициализировать константы в namespace в *.h *.cpp?

    @MarkusD Куратор тега C++
    maaGames
    Могу ошибаться

    Да, ошибаешься.
    Порядок инициализации глобальных констант и переменных не определен только между модулями трансляции. В модуле трансляции порядок определен первенством следования в тексте программы.

    Строковые значения у автора пустые по другой причине. Но автор не раскрывает своих карт, заставляя других людей заниматься гаданием. Потенциально это из-за SIOF.

    Про extern ты прав. Он дает выражению характеристику внешнего связывания, а у глобальных констант без этого спецификатора связывание внутреннее.
  • Ошибка в Visual studio opengl. Как решить?

    @MarkusD Куратор тега C++
    Risdaw,
    мне не помогает, я уже во все папки скопировал и ничего все-равно ошибка

    Это значит что ты просто замусорил другие папки, так и не скопировав файл в нужную. Такое бывает когда берешься за дело без знаний об инструменте. А где же еще набраться знаний, как не в документации к инструменту?
    Если людей о каждой мелочи спрашивать, ты очень быстро останешься один.
    Выходная папка проекта задается в настройках проекта.
  • Как отключить вывод в шестнадцатеричном виде в Visual Studio 2022?

    Василий Банников, а эта настройка находится уже только в контекстом меню значения. И переключается она всегда раз и навсегда. Т.е. один раз переключил и все будет как положено.
    О чем автор спрашивает, в целом, не понятно. Если только не допустить момент, что автор студию поставил под другим пользователем и не имеет прав на изменение ее настроек. В этом случае настройки студии будут сохраняться только на период сессии. В остальных случаях настройки всегда будут применяться для всех следующих сессий.
  • Как отключить вывод в шестнадцатеричном виде в Visual Studio 2022?

    Викентий , а что ты хочешь увидеть в десятичном представлении адреса виртуальной памяти?