В принципе, если захочется в жоский эмбед портануть, то можно будет выкинуть пимплы, и запилить туда непосредственную реализацию, при этом внешний интерфейс для пользователя останется тем же самым, и прикладной код можно будет переносить как есть
Я бы сказал не value, а handle-классы.
Тут же несколько экземпляров при копировании будут шарить одну реализацию.
А value-семантика — это когда полностью независимые и равные объекты получаются.
В данном примере глубокое копирование понадобиться (через виртуальный метод clone, например).
Я, конечно, не знаю специфики вашей задачи, но для pimpl бы использовал unique_ptr.
Q>Я бы сказал не value, а handle-классы. Q>Тут же несколько экземпляров при копировании будут шарить одну реализацию. Q>А value-семантика — это когда полностью независимые и равные объекты получаются.
Да, согласен.
Q>В данном примере глубокое копирование понадобиться (через виртуальный метод clone, например).
Q>Я, конечно, не знаю специфики вашей задачи, но для pimpl бы использовал unique_ptr.
Небольшая либа контролов поверх самопального канваса. shared_ptr — потом это всё будет биндится в скриптовый движок, и как оно там унутре работает — для меня сие загадка большая, а разбираться — лень Но с shared_ptr всё нормас работает
марти хочет показать какой он современный
и пытается задействовать все плюшки современных плюсов
выходит неуклюже
даже на с++98 можно писать по круче с++20
если красиво сделана декомпозиция
Здравствуйте, Marty, Вы писали:
M>>>У меня есть проект с движком squirrel, туда shared_ptr<IInterface> прокидывается CC>>А внутри как используется? M>В смысле?
Ну, что с ним дальше внутри белки происходит?
Здравствуйте, Marty, Вы писали:
CC>>Ну т.е. что оно делает? M>Десктопный софт
Ты хочешь сказать что оно делает десктоп?
M>Мой потенциальный потребитель — человек не богатый, не компьютерщик, и дома у него легко может оказаться Win7 на x86, а то и та самая XP
А телеметрия хоть есть какая или feedback чтоб понять чем твоя клиентура на самом деле пользуется?
А то может быть там всё куда новее чем ты думаешь.
Здравствуйте, CreatorCray, Вы писали:
M>>>>У меня есть проект с движком squirrel, туда shared_ptr<IInterface> прокидывается CC>>>А внутри как используется? M>>В смысле? CC>Ну, что с ним дальше внутри белки происходит?
Ну, в целом, в белке самой объекты шарятся, для глубокого копирования надо делать clone. С другой стороны, я возвращаю туда классы по значению, и пока оно долетает до того места, куда приземлиться, конструктора разные вызываются. Поэтому вараинт с шаредом стопроцентно рабочий, а глубже копать мне было лень, раз с шаредом нормально работает
Здравствуйте, CreatorCray, Вы писали:
CC>>>Ну т.е. что оно делает? M>>Десктопный софт CC>Ты хочешь сказать что оно делает десктоп?
Нет, извини, я просто не слишком точно ответил на твой вопрос
CC>А телеметрия хоть есть какая или feedback чтоб понять чем твоя клиентура на самом деле пользуется?
Фидбэк какой-то есть. Ходил как-то на курсы бухгалтеров, общался с одногрупниками, видел, какие там компы в учебном центре. Опять же, есть некоторое количество знакомых некомпьютерщиков, и я видел, какие у них дома стоят компы
CC>А то может быть там всё куда новее чем ты думаешь.
Здравствуйте, Marty, Вы писали:
M>Нет, извини, я просто не слишком точно ответил на твой вопрос
Ты совсем на него не ответил, и похоже не собираешься.
Просто так и ответь "не скажу, секрет", а не ходи вокруг да около
M>Фидбэк какой-то есть. Ходил как-то на курсы бухгалтеров, общался с одногрупниками, видел, какие там компы в учебном центре. Опять же, есть некоторое количество знакомых некомпьютерщиков, и я видел, какие у них дома стоят компы
Не, одно дело "видел и кажется", совсем другое — реальная инфа
CC>>А то может быть там всё куда новее чем ты думаешь. M>Или нет
В любом случае это разница между "знать" и "думать что знаешь"
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Marty, Вы писали:
M>>Нет, извини, я просто не слишком точно ответил на твой вопрос CC>Ты совсем на него не ответил, и похоже не собираешься. CC>Просто так и ответь "не скажу, секрет", а не ходи вокруг да около
Не скажу, секрет
M>>Фидбэк какой-то есть. Ходил как-то на курсы бухгалтеров, общался с одногрупниками, видел, какие там компы в учебном центре. Опять же, есть некоторое количество знакомых некомпьютерщиков, и я видел, какие у них дома стоят компы CC>Не, одно дело "видел и кажется", совсем другое — реальная инфа
Ну, скажем так, есть некоторый опыт с общения с некоторой массой различных российских обывателей, хоть и не слишком большой, но, имхо, неплохо показывающий, что и как у российского обывателя с компьютеризацией.
CC>>>А то может быть там всё куда новее чем ты думаешь. M>>Или нет CC>В любом случае это разница между "знать" и "думать что знаешь"
Знать без большого исследования или эксперимента невозможно. В том числе то, что я стал разрабатывать с такими минимальными требованиями к системе — это тоже часть эксперимента. Это раз. Второе — WinGDI я знаю лучше всего, и он достаточно низкоуровневый и древний, чтобы в моём АПИ не слишком увлекаться модными фичами. Если потом статистика использования приложения покажет, что поддержка XP/Win7 не нужна, то перепилить на другой бэкэнда — дело месяца, максимум двух, но без такого натурного эксперимента это никак не узнать