Ответы пользователя по тегу C++
  • В чем отличия C++ и C# ?

    AxisPod
    @AxisPod
    1) Подскажите пожалуйста чем отличаются C++ и C#?
    Многим, за основую был взят синтаксис и всё. В остальном разница колосальная.

    2) Насколько они похожи по синтаксису?
    По синтаксису похожи в основном только на уровне C. Ну и чутка от классов. В остальном разница, в C# generics и C++ templates различаются очень сильно, в первую очередь функционалом. В C# очень много своих фишек, много синтаксического сахара.

    3) Возможно ли изучая например C++ "переключится" на C#, не прибегая к изучению всего языка с 0?
    Если хочется знать языки хорошо, то оба надо изучать с нуля. Свои тонкости. C++ компилируемый язык, надо знать тонкости платформ, как хранит данные в памяти и т.д. В C# кажется что-то похоже, а на деле нет, а посмотришь вглубь, так совсем нет. Здесь даже знание одного языка может быть плохим при изучение другого. Ибо название сущности одно, а поведение отличается.

    4) Возможна ли разработка под android на этих языках? (Тут, я думаю, следует дать небольшое пояснение. По моей задумке небольшие задачки с программированием под android, для себя, были бы очень полезны. )
    C++ NDK в руки и вперед. С C# уже сложнее, вроде как только Xamarin, имеет не мало подводных камней.

    5) С какого языка проще начать?
    Начать проще с C#, больше предложений на рынке. Проще сразу начать, но с повышением сложности решаемых задач накосячить становится проще.
    Ответ написан
    Комментировать
  • Не ставится g++ что не так, что делать?

    AxisPod
    @AxisPod
    Сдох репозиторий, в /etc/apt/sources.list надо выбрать другие сервера и всё заработает.
    Ответ написан
    Комментировать
  • Создание оконных приложений для Windows?

    AxisPod
    @AxisPod
    >> Какие есть IDE для этого? Visual Studio, Eclipse, NetBeans, QT Creator не подходят. Критерий к IDE нету.

    Когнетивный диссонанс. Мозг где-то у меня словил дедлок, теперь придется перегружаться методом удара сковородкой по голове.
    Ответ написан
    Комментировать
  • Высоконагруженный проект на С++?

    AxisPod
    @AxisPod
    Видимо те же самые, что и на других ЯП.
    Ответ написан
    Комментировать
  • Хороша ли NetBeans как IDE для C++?

    AxisPod
    @AxisPod
    Ну вообще нормально подходит, главное настроить. Но основной критерий выбора - удалённая разработка. Если удалённой разработки нет, то и использовать не следует.
    Ответ написан
    Комментировать
  • Как правильно организовать logrotate в своем сервисе?

    AxisPod
    @AxisPod
    Linux позволяет переименовать файл, при этом сервис продолжит писать в него. Единственное что нужно реализовать, так это переоткрытие файла, logrotate переименовывает, а затем посылает сигнал приложению, к примеру SIGUSR1, по нему просто переоткрываете файл лога и продолжаете писать. Ничего нигде не сломается.
    Ответ написан
    Комментировать
  • Какое Ваше отношение к префиксам в именах исходных файлов?

    AxisPod
    @AxisPod
    Префиксы не делаю и не буду, а всё раскладываю аккуратно по папкам. Никогда не держу всё в одной, получается жуткая каша. Особенно, когда файлов так 300 и больше.
    Ответ написан
  • Как добиться нужного fps?

    AxisPod
    @AxisPod
    Ну во первых для этого существуют high-resolution timers. И никогда для этого не используйте GetTickCount и подобные. В винде для этого надо использовать multimedia timers. В принципе можно использовать boost::asio для этого. Здесь требуется событийная система.

    Дальше, что сильно пугает, так это опрос клавиатуры, вы не сможете таким образом нажать 2 клавиши одновременно. Так никогда не стоит делать. В винде для этого есть RawInput. Как в никсах уже не подскажу.

    А вообще возьмите готовый движок, не парьте мозг.

    P.S. А вообще почитайте как организуются игровые циклы. В основном цикле заводится некий таймер, но он не предназначен для контроля fps (тут как я сказал выше нужен high-resolition timer и очень желательно событийный), он предназначен для расчета состояния игрового мира, чтобы скорость игры не зависила от кол-ва fps. На деле FPS обычно контролируется средствами системы (а в частности видеокарты) и называется это "ожидания луча" (в древности), ныне называется просто синхронизация кадра/видео и что-нить еще. При этом она может быть кратной вертикальной частоте монитора, если монитор имеет частоту 60, то вы можете получить частоту кадров 30. В этом вам спокойно помогут готовые игровые движки.
    Ответ написан
    1 комментарий
  • Как откомпилировать функцию в исполняемый код без "связей"?

    AxisPod
    @AxisPod
    Если делать тупо как вы написали, приложение тупо может упасть. Если вы не хотите делать свой компилятор, то не пытайтесь в память пихать свой код и выполнять его. Если же хотите свой скриптовый движок с JIT компилятором, то копайте именно в сторону JIT компиляторов.
    Ответ написан
  • Как получить значение атрибута по имени в rapidxml?

    AxisPod
    @AxisPod
    Лень почитать документацию?
    Ответ написан
    Комментировать
  • Как по содержимому файла (без расширения) определить, что это за ЯП?

    AxisPod
    @AxisPod
    Собрать грамматики всех нужных языков и пробовать разбирать ими?
    Ответ написан
    Комментировать
  • Чем отличается разработчик C++ под Linux от разработчика под Windows?

    AxisPod
    @AxisPod
    На деле стандартная библиотека (stl) мало чем отличается. C Posix функции опять же мало чем отличаются, разве что MS рекомендует использовать свои безопасные версии.

    Главное различие кроется не в C++, а в самих платформах, слегка измененная работа с сетью (для чего-то простого) и совсем другая (для сложного, если же использовать boost::asio к примеру, то ничем), другая файловая структура (на деле даже удобнее, что не надо экранировать слеши), разница во всех системных API, тут уже никуда не денешься.

    Переход на деле не такой сложный как кажется.
    Ответ написан
    Комментировать
  • Можно ли использовать класс string в dll С++?

    AxisPod
    @AxisPod
    А почему нет? Конечно не желательно использовать dll с одним рантайм, в приложении/dll с другим рантайм. Если проект свой и всё спокойно пересобирается, то проблем вообще нет.
    Ответ написан
    Комментировать
  • Как распознать объект (С/С++)?

    AxisPod
    @AxisPod
    Если картинка не кропалась, то искать соответствие не очень сложно. Делали так, даже работает.
    Обрабатываются картинки в базе: перевод в YCrCb, уменьшение размера до 8 на 8 без сохранения пропорций, взятие нескольких хэшей по каждой цветовой компоненте, хэши берутся по битам с пиксела, начиная со старших (если делать как было в какой-то из статей на хабре, там не учитывался цвет, будет каша). Сохраняются хэши в базе. Затем для искомой делается тоже самое и ищутся хэши в базе с некоторым расстоянием хэмминга, тут уже надо подобрать. Но это поможет только в случае, если картинки довольно заметно отличаются.
    Ответ написан
    Комментировать
  • Есть видеоуроки по с++?

    AxisPod
    @AxisPod
    Только текст и никак иначе. Если вы хотите изучить язык, на него надо потратить время, просто так ничего не выучите. Программирование идет текстом, видео тут не нужно, это не графический редактор, не видео редактор.

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

    А следующим этапом брать книги и учить глубоко по ним. А в C++ программеры знающие верхушки не нужны.
    Ответ написан
  • Какие посоветуете ссылки на видео уроки по с++?

    AxisPod
    @AxisPod
    И как по роликам учиться? Смотреть видео, ставить на паузу, вбивать кусок кода с фигового качества картинки, затем чутка проигрывать, опять вбивать код, затем отматывать назад, смотреть, чего не так и где ошибка? Смеетесь.

    Книги и максимум текстовые туториалы. А полного курса по C++ в принципе ни в одном туториале никогда не наёдете, вообще никогда. Разработчиков на C++ знающих стандарт от корки до корки можно пересчитать по пальцам и у них явно есть более высокооплачиваемая работа, чем запись видеотуториалов.

    C++ изучается таким образом: Берется чуть ли не любая простая книга, затем берется книга уже от отцов-основателей или близких к ним (список можно найти и на тостере, тем много, появляются чуть ли ни каждую неделю). А уже затем изучается посредством гугления.
    Ответ написан
    Комментировать
  • Подскажитe литературу по шаблонам проектирования C++?

    AxisPod
    @AxisPod
    Я так понимаю, вы больше о шаблонной магии C++. А точнее о C++ Template Metaprogramming?

    Вообще примерно так, последовательность важна:
    Джеф Элджер - C++ for Real Programmers (есть на русском)
    Андрей Александреску - Modern C++ Design (есть на русском)
    C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (на русском не видел и скорее всего нет)

    Элджер даёт базовые знания работы шаблонов, Александреску уже более или менее разжовывает, но всё еще слабо, очень слабо, а вот последняя книга от авторов boost (хотя это наверное больше сборник понтов, чем реально полезной информации) помогает вправить мозг, не тем что в ней написано, а тем, что вы начнете искать как выполнить упражнения, а вот там уже и будет сама шаблонная магия.

    Ну и как вариант не забывать посмотреть работу type traits из C++11.

    P.S. Ах да, забыл добавить, что шаблонное метапрограммирование сродни функциональному программированию, в этом его сложность для программистов привыкшим к процедурному.
    Ответ написан
    1 комментарий
  • Можно ли передавать в качестве параметра шаблона указатель на функцию?

    AxisPod
    @AxisPod
    Используя typedef можно.
    ideone.com/tzKAng

    Но не стоит этого делать :) В данном случае на каждую пробрасываемую функцию будет генериться свой код. Во вторых тут уже никак не прокинуть std::function, с лямбдами тоже ничего скорее всего не выйдет, про std::bind вообще молчу.
    Ответ написан
    1 комментарий
  • Как прервать ожидание на ввод в С++?

    AxisPod
    @AxisPod
    Данная функция вам в принципе не поможет, необходимо использовать в данном случае нужны функции которые возвращают результат сразу не ожидая действий извне, например peek и организовывать свой цикл ввода. Ну или read.
    Ответ написан
    Комментировать