#pragma once #include#include template class Lazy; template class Lazy { private: using FuncType = std::function ; public: explicit Lazy(FuncType&& func) noexcept :m_func(std::forward (func)) {} template const RType& value(Args&& ...args) noexcept { if(!m_value.has_value()) { m_value.emplace(m_func(std::forward (args)...)); } return m_value.value(); } private: FuncType m_func; std::optional m_value; };
调用:



