Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
RabraBabr

RabraBabr

  • 23
    вклад
  • 4
    вопроса
  • 30
    ответов
  • 20%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Что не так, в чем ошибка?

    RabraBabr
    RabraBabr @RabraBabr
    else if (i >= 1 || i <= 12)


    Вот это вот, что такое? И зачем оно вообще?
    Написано вчера
  • Как правильно передавать функцию в качестве параметра?

    RabraBabr
    RabraBabr @RabraBabr
    Matvey_Mt,

    Я правильно понял, что тут та же история что и с передачей массива в функцию


    А можно и так. Начиная с 20 стандарта для встроенных массивов возможен вариант с std::span (до этого из gsl)
    void foo(span<int> arr);
    Написано 06 мая
  • Какой open source проект написан на труъ Си++?

    RabraBabr
    RabraBabr @RabraBabr
    И теперь сверху жалуются, что мой код "слишком сишный", то есть написан на Си без плюсов, хоть я и использую классы. Проблема в том, что никто из коллег на работе не может нормально объяснить, как, собственно должен выглядеть "плюсовый" код.


    Давайте так. C и C++ два совершенно разных языка между которыми нету ничего общего. Ну кроме синтаксиса. C++ язык общего назначения является по сути наследником Simula 67 с синтаксисом C. Базовый синтаксис C с незначительными расширениями образует kernel language. Используя его совместно с механизмом классов вы получаете возможность программировать с использованием абстрактных типов данных. Очевидно "плюсовый" код должен выглядеть как код использующий АТД.

    Примеры.

    Типичный c стайл код:
    spoiler
    int j = 0;
        char s[] = "hello\n";
        char ch;
        
        while (s[j])
        {
            ch = s[j];
            putchar(toupper(ch));
            j++;
        }


    С++ код:
    spoiler
    std::string s("hello");
        std::transform(s.begin(), s.end(), s.begin(),
                       [](unsigned char c) -> unsigned char { return std::toupper(c); });
    Написано 06 мая
  • Какие разработчики работают с алгоритмами?

    RabraBabr
    RabraBabr @RabraBabr
    Wataru, Смотря на какую позицию собес. Если программист алгоритмист в библиотечный код. То вот это прям и есть суть его работы. Как собесить без алгоритмов я незнаю. Тут конечно давать задачки на время не надо. А лучше побеседовать по классическим алгоритмам (и структурам данных), что бы послушать ход размышлений человека. Оценить так сказать его логическое мышление. Ну а условным формошлепам в клиентский код да алгоритмы не нужны. Можно поговорить по душам.
    Написано 26 апр.
  • Сработает ли деструктор, присвоив atomic?

    RabraBabr
    RabraBabr @RabraBabr
    Mercury13, У умершего может быть вообще, что угодно без каких либо гарантий. Там классическое UB. Имхо это вообще не валидная стратегия. К тому же и компилятор не даст ни каких гарантий по поводу value. В общем пример того как делать ненадо.
    Написано 26 апр.
  • Пустой массив C++, как решить?

    RabraBabr
    RabraBabr @RabraBabr
    Объект передается по значению. Вы работаете с копией. Которая автоматически уничтожается при выходе из области видимости.

    З.Ы. Отучайтесь от дурного стиля именования переменных и функций.
    Написано 03 апр.
  • Как написать explode() на c++?

    RabraBabr
    RabraBabr @RabraBabr
    O'k возьмем код попроще

    const Polygon operator+( const Polygon& lhs,const Polygon& rhs )
    {
        Polygon ret = lhs;
        const int last = rhs.GetNumPoints();
        for( int i = 0; i < last; ++i ) // Конкатенация
        {
            ret.AddPoint( rhs.GetPoint(i) );
            
        }
        return ret;
    }


    Этот код попадет в библиотечный. Потом мы не знаем сколько миллионов раз он будет вызываться в клиентском коде (GetNumPoints(); можно пихнуть в цикл).
    Написано 10 мар.
  • Как написать explode() на c++?

    RabraBabr
    RabraBabr @RabraBabr
    Метод просто возвращает значение поля длины строки


    По значению? Каждый раз будет копирование?
    Написано 10 мар.
  • Как написать explode() на c++?

    RabraBabr
    RabraBabr @RabraBabr
    Евгений Шатунов, То есть оно вызовется только один раз независимо от количества циклов?

    for(int i{0}; i < input.length(); ++i)

    сама input как я понимаю не меняется.
    Написано 10 мар.
  • Как написать explode() на c++?

    RabraBabr
    RabraBabr @RabraBabr
    Безотносительно качества кода. У меня вопрос по поводу вызова .length(); внутри цикла. Насколько это хорошая идея с точки зрения производительности?
    Написано 10 мар.
  • Как создать новый экземпляр класса переменной?

    RabraBabr
    RabraBabr @RabraBabr
    Я правильно понял или нет?
    spoiler
    /******************************************************************************
    
    Welcome to GDB Online.
    GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, 
    C#, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS
    Code, Compile, Run and Debug online from anywhere in world.
    
    *******************************************************************************/
    #include <iostream>
    #include <memory>
    
    template<typename Derived>
    struct Clonable{
    public:
        virtual ~Clonable() = default;
        std::unique_ptr<Derived> clone(){ return std::unique_ptr<Derived>( vclone() ); }
    protected:
        virtual Derived* vclone() const = 0;
    };
    
    class MyClass : public Clonable<MyClass>{
    public:
        void print() const { std::cout << "I'm a MyClass!" << std::endl; }
        std::unique_ptr<MyClass> clone() { return std::unique_ptr<MyClass>{ vclone() }; }
    protected:
        virtual MyClass* vclone() const = 0;
    };
    
    class Implementation : public MyClass{
    public:
        virtual Implementation* vclone() const override
        {
            return new Implementation(*this);
        }
    };
    
    int main()
    {
        Implementation impl;
        
        MyClass* a = &impl;
        std::unique_ptr<MyClass> b = a->clone();
        a->print();
    
        return 0;
    }
    Написано 09 февр.
  • Как написать код в c++ который будет писать сообщения в документ?

    RabraBabr
    RabraBabr @RabraBabr
    Что подразумевается под словом "документ"?
    Написано 08 февр.
  • Стоит ли учить C++, если нет возможности использовать Unreal Engine?

    RabraBabr
    RabraBabr @RabraBabr
    Евгений Шатунов,
    Ну вы чересчур строги к новому и явно юному адепту. Спугнете. Вы еще намекните ему, что надо будет осилить более 3000 страниц стандарта. Так он сразу сбежит.
    Написано 08 февр.
  • Как создать новый экземпляр класса переменной?

    RabraBabr
    RabraBabr @RabraBabr
    Как то это всё не по плюсовому выглядит. Можете объяснить для чего вот это вот все надо городить? Я наверное чего то не понимаю.
    Написано 08 февр.
  • Как лучше сохранять дату и время?

    RabraBabr
    RabraBabr @RabraBabr
    А справочник для цифр не хотите ввести?


    А разве ASCII таблица не оно?
    Написано 14 янв.
  • Есть ли в для C++14 map с поддержкой constexpr хэша?

    RabraBabr
    RabraBabr @RabraBabr
    rustler2000, такое не пойдет?
    https://github.com/hogliux/semimap
    Написано более двух лет назад
  • Что же такое hex?

    RabraBabr
    RabraBabr @RabraBabr
    https://en.cppreference.com/w/cpp/io/manip/hex

    Modifies the default numeric base for integer I/O.


    Об чем вопрос?
    Написано более двух лет назад
  • Есть ли в для C++14 map с поддержкой constexpr хэша?

    RabraBabr
    RabraBabr @RabraBabr
    std::map он же отсортирован. Какой хэш? Там в основе реализации красно черные деревья или я что то не понимаю?
    Написано более двух лет назад
  • Почему может не стартовать/очень редко стартовать BIOS у сервера Supermicro?

    RabraBabr
    RabraBabr @RabraBabr
    А если из розетки питание выдернуть физически и еще раз включить.?

    Блок питания точно исправный? Конденсаторы не вздулись?

    У мну один сервер так же не стартует. Долго искал причину и случайно нашел. Если отрубить usb - клаву, то грузится, после загрузки ее подключаю. Если клава по умолчанию подключена то не грузится биос, почему не знаю.
    Написано более двух лет назад
  • Выгорание Oled дисплея из-за приложения, можно ли подать в суд на атора приложения?

    RabraBabr
    RabraBabr @RabraBabr
    я уже на третьем телефоне>


    Мда... Мыши кололись плакали но продолжали есть кактус.

    Если по теме. Подать в суд можно, выиграть вряд ли.
    А вообще к программе должен быть - term and condition. Там наверняка ответственность с разработчика снимается и пользуетесь вы программой на свой страх и риск.
    Написано более двух лет назад
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • Следующие →
Самые активные сегодня
  • rPman
    • 8 ответов
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 6 ответов
    • 0 вопросов
  • Dr. Bacon
    • 6 ответов
    • 0 вопросов
  • senku1435
    Daniil Igumenshev
    • 5 ответов
    • 1 вопрос
  • 0xD34F
    0xD34F
    • 5 ответов
    • 0 вопросов
  • Sanes
    Sanes
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации