Pull to refresh
@eshirshovread⁠-⁠only

User

Send message
можно. для хендлов будет отлично.
Из минусов: не работают арифметические операции

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

остановился на компромиссе:
typedef яблоки int;
typedef груши int;

груши f = 1;
яблоки a= 2;
vector<груши> g;

Увы. Идея «а давайте обернём примитивные типы» не работает.
Оно конечно можно пару тройку ключевых типов обернуть чем-то вроде:
#define BOOST_STRONG_TYPEDEF()
Но это не айс. Правильная эмуляция примитивного int к, примеру, не примитивная задача.
Класс это класс, даже если притворяется примитивным типом.
Как минимум, после компиляции, в релизе и отладке эти ухищрения лучше обратно заменить на нативные типы.

т.е. хотелось бы строгих типов но нету.

поддержка «сайта на с++» то еще «удовольствие». опыт имеется ;(.
И в 99% процентах случаях беcсмысленно, т.к. узкое место — база данных.
Хотя существует ниша для Wt.
И разница была очень серьёзная.

Серьёзно, 4 года крайне не эффективной работы и пришли в выводу что пора быть как все?
Или, всё-таки для красного рекламного словца?
Краткое содержание:
Мы были кто в лес кто по дрова.
Но собрались в Офисе и достигли Просветления.
Имхо.
Писатель собственного ЯП должен ответить себе на вопросы:
Зачем?
А в чём уникальность\фишка велосипеда?
Ну об этом ещё Чуковский писал:
"… Из окошка вывалился стол
И пошел пошел пошел пошел..."
Предвидел однако.
Тоже работал удалённо. Отпишусь об ощущениях.
На первый взгляд вроде ничего. Жене можно по мелкому помочь. Домашние с пониманием относятся (папа работает). Ходить не надо на работу ( 40 минут пешком ).
Но потом выясняется:
1. Перерабатываешь.
Если с работы необходимо 18.00 уйти, и жена за этим проследит :). То дома вроде как гонять незачем, муж же тут. Как-то незаметно +1-2 часа сверху.
2. Не выходишь из дома.
Люди на работу утром уходят вечером приходят. Это худо-бедно физическая активность а если ещё и на велосипеде… А так получается что выходить из дома незачем и некогда. Тоска.
Ситуация с Вадимом и Сергеем неоднозначна.

А если-бы реальность распорядилась по иному (печальный итог)
Перераспределились ли бы плюса\минуса для «пессимиста»\«оптимиста»?

Я конечно имею ввиду тренинговый вариант.
Безымянные указатели

Неплохо бы было сразу указать ссылку на источник этого знания. Авторитетный кстати. До Саттера как-то нигде не было и намёка на возможность подобной коллизии.

Проблема использования в разных потоках

Строго говоря это не является проблемой shared_ptr. Это проблема потоконебезопасного использования объекта, тип объекта вторичен.
Но если очень хочется то можно ( из буста ):
template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r )
{
    boost::detail::spinlock_pool<2>::scoped_lock lock( p );
    p->swap( r );
}

P.S. Именно этот пост побудил меня зарегистрироваться на Хабре, для этого комментария.
Полностью с Вами согласен.
Перефразируя: каждый проблемный код несчастен по своему.
Инвидуальный подход никто не отменял.
— да, дороговато. Но это не имеет почти никакого значения. Нужен только однократный тестовый прогон. Сложность графа получаемых зависимостей заранее, не зная проекта досконально, предсказать нельзя. Самописный граф тоже имеет право на существование.

— Мне кажется возможно Вы ввелись в заблуждение: Здесь не realtime ловля моментов deadlock, а поиск ситуаций которые могут к нему приводить.
спасибо. промышленный код. теперь лучше?
12 ...
14

Information

Rating
Does not participate
Registered
Activity