Документация для Boost.TypeerAsure включает в себя пример «форматирование полиморфного диапазона», который имитирует концепцию «чисто виртуальной функции члена шаблона». Я могу скомпилировать и запустить этот пример кода, который определяет иерархию класса, которая позволяет отформатировать последовательность несколькими различными способами. Я хотел бы привести это к гораздо более простому примеру, который просто принимает значение и отправляет его на std :: out. Вот моя наивная попытка: < /p>
Документация для Boost.TypeerAsure включает в себя пример «форматирование полиморфного диапазона», который имитирует концепцию «чисто виртуальной функции члена шаблона». Я могу скомпилировать и запустить этот пример кода, который определяет иерархию класса, которая позволяет отформатировать последовательность несколькими различными способами. Я хотел бы привести это к гораздо более простому примеру, который просто принимает значение и отправляет его на std :: out. Вот моя наивная попытка: < /p> [code]#include #include #include #include #include #include
class separator_printer2 : public abstract_printer2 { protected: virtual void do_print(x_type x) const { std::cout Build started at 14:02... 1>------ Build started: Project: test, Configuration: Debug x64 ------ 1>test.cpp 1>C:\bob\projects\test\test.cpp(17,17): error C2280: 'boost::type_erasure::any::any(const boost::type_erasure::any &)': attempting to reference a deleted function 1>C:\bob\projects\boost\boost\type_erasure\any.hpp(1928,1): 1>compiler has generated 'boost::type_erasure::any::any' here 1>C:\bob\projects\boost\boost\type_erasure\any.hpp(1928,1): 1>'boost::type_erasure::any::any(const boost::type_erasure::any &)': function was implicitly deleted because a base class invokes a deleted or inaccessible function 'boost::type_erasure::any_constructor_control::any_constructor_control(const boost::type_erasure::any_constructor_control &)' 1> with 1> [ 1> Concept=abstract_printer2::requirements, 1> T=_x 1> ] 1>C:\bob\projects\boost\boost\type_erasure\any.hpp(376,5): 1>'boost::type_erasure::any_constructor_control::any_constructor_control(const boost::type_erasure::any_constructor_control &)': function was explicitly deleted 1> with 1> [ 1> Concept=abstract_printer2::requirements, 1> T=_x 1> ] 1>C:\bob\projects\test\test.cpp(17,17): 1>the template instantiation context (the oldest one first) is 1> C:\bob\projects\test\test.06.factory\test.cpp(38,7): 1> see reference to function template instantiation 'void abstract_printer2::print(X) const' being compiled 1> with 1> [ 1> X=int 1> ] 1>Done building project "test.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== ========== Build completed at 14:02 and took 01.517 seconds ========== [/code] Что я делаю не так?
Документация для Boost.TypeerAsure включает в себя пример «форматирование полиморфного диапазона», который имитирует концепцию «чисто виртуальной функции члена шаблона». Я могу скомпилировать и запустить этот пример кода, который определяет иерархию...
Мой проблемный домен состоит из ассортимента иерархий классов без общего базового класса. Во время инициализации я экземпляры бетонные экземпляры. Я хочу хранить их в гетерогенном контейнере. Позже я хочу получить объект и вызвать его интерфейс...
Я изучаю MVVM и чистую архитектуру. Затем я нашел несколько статей о MVVM + чистой архитектуре, но так и не понял разницы между mvvm с чистой архитектурой и mvvm без чистой архитектуры. Есть какое-нибудь резюме об этих вещах? Спасибо.