M module-sys/Service/include/Service/ServiceCreator.hpp => module-sys/Service/include/Service/ServiceCreator.hpp +4 -0
@@ 67,6 67,10 @@ namespace sys
*/
template <typename T, typename... Args> std::unique_ptr<BaseServiceCreator> CreatorFor(Args &&...args) noexcept
{
+ if constexpr (sizeof...(args)) {
+ static_assert(not std::is_reference_v<Args...>,
+ "Do not pass const T& or T& as parameters. Use r-values (std::move) instead");
+ }
return std::make_unique<ServiceCreator<T, Args...>>(ManifestOf<T>(), std::forward<Args>(args)...);
}
} // namespace sys
M products/BellHybrid/BellHybridMain.cpp => products/BellHybrid/BellHybridMain.cpp +2 -3
@@ 50,8 50,7 @@ int main()
{
constexpr auto ApplicationName = "BellHybrid";
- const std::vector<std::string> fileIndexerAudioPaths = {
- {purefs::dir::getCurrentOSPath() / "assets/audio/bg_sounds"}};
+ std::vector<std::string> fileIndexerAudioPaths = {{purefs::dir::getCurrentOSPath() / "assets/audio/bg_sounds"}};
#if SYSTEM_VIEW_ENABLED
SEGGER_SYSVIEW_Conf();
@@ 74,7 73,7 @@ int main()
std::vector<std::unique_ptr<sys::BaseServiceCreator>> systemServices;
systemServices.emplace_back(sys::CreatorFor<EventManager>([]() { return dumpLogs(); }));
- systemServices.emplace_back(sys::CreatorFor<service::ServiceFileIndexer>(fileIndexerAudioPaths));
+ systemServices.emplace_back(sys::CreatorFor<service::ServiceFileIndexer>(std::move(fileIndexerAudioPaths)));
systemServices.emplace_back(sys::CreatorFor<ServiceDB>());
systemServices.emplace_back(sys::CreatorFor<service::Audio>());
systemServices.emplace_back(sys::CreatorFor<ServiceDesktop>());