Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Оценить код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пропал код из .cu http://www.cyberforum.ru/cpp/thread1699738.html
Пропал код из файла с расширением .cu.%-) Восстановить будет мне не сложно. Мне интересно, кто-нибудь до этого с таким сталкивался? До этого сильно загружал видеокарту потом драйвер переставал...
C++ Требуется программа для стеганографии (небесплатно) Нужны две программы для стеганографии: первая берёт wav файл и текст, затем выдаёт только немного изменённый wav файл, вторая программа получает на вход изменённый wav файл и выдаёт исходный текст.... http://www.cyberforum.ru/cpp/thread1698528.html
Программа с opencv жрет память C++
Вообщем есть программа, после каждой итерации очищаю память, но все-равно почему то буквально за 2-3 цикла по j, программа падает из-за того что виртуальная память заполняется до отказа. Кто что...
C++ Указатель на функцию
Доброго времени суток! Кто может посоветовать способ присвоить указателю на функцию значение, т.е. имя функции, если мы не будем указывать его явно в коде, а задади имя функции как std::string....
C++ Замер времени работы участка кода http://www.cyberforum.ru/cpp/thread1696528.html
Сразу скажу что меня не интересуют стандартные замеры времени роботы участка кода, так как они показывают время роботы данного участка кода + время роботы других процессов (до момента завершения...
C++ Кроссплатформенный способ переноса файлов Есть какой-нибудь легальный способ кроссплатформенного переноса папок/файлов в C++? Желательно именно способы переноса, а не copy/remove, т.к. внутри одного диска простой перенос будет моментальным. подробнее

Показать сообщение отдельно
hoggy
6654 / 2842 / 487
Регистрация: 15.11.2014
Сообщений: 6,295
Завершенные тесты: 1
02.04.2016, 16:22
Цитата Сообщение от dvano Посмотреть сообщение
оцените код
в целом: код приятен.
с точки зрения чтения, и восприятия,
можно назвать образцово показательным.

Цитата Сообщение от dvano Посмотреть сообщение
Какие советы вы можете дать? Что можно улучшить(исправить)?
можно убить сразу же трех зайцев,
если добавить дополнительную папку,
которая содержала бы примеры использования.

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

с другой - они так же могут выступать в качестве юнит-тестов продукта,
и гарантировать его работоспособность.

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

Цитата Сообщение от dvano Посмотреть сообщение
Как бы вы сделали ту или иную вещь?
рассмотрим код:
C++
1
void insertObject(std::unique_ptr<RenderObject>&& renderObject) noexcept;
такие вещи на мой взгляд лучше прятать в приваты.
потому что std::unique_ptr в данном случае - это деталь реализации.

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

вместо этого:
C++
1
2
3
4
5
6
7
scene.insertObject(
    std::make_unique<Sphere>(
        vec3f{0.0F, 0.0F, 100.0F}, 
        vec3f{0.0F, 0.0F, 255.0F}, 
        50.0F
    )
);
вот такое:
C++
1
2
3
4
5
6
7
// укажите тип объекта, который нужно вставить
// и список аргументов с которыми он должен быть построен
scene.insertObject<Sphere>(
    vec3f{0.0F, 0.0F, 100.0F}, 
    vec3f{0.0F, 0.0F, 255.0F}, 
    50.0F
);
запись получается короче, что уже удобнее само по себе.
и не содержит намеков на детали реализации.

достичь этого можно за счет статической фабрики:

C++
1
2
3
4
5
6
7
8
template<class RenderObject_, class ...Args>
void insertObject(Args&&... args) noexcept
{
    // вызываем приватную деталь реализации
    this->insertObject(
        std::make_unique<RenderObject_>( std::forward<Args>(args)... )
    );
}
получаем тоже самое,
но пользователям больше не нужно знать о факте использования std::unique_ptr.
а вы соответственно, не имеете легаси в связи с этим.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru