#pragma once #include #include namespace gencpp { namespace util { /** * @brief A complex template class demonstrating variadic templates. */ template class MultiBuffer { public: void SetData(Args... args) { m_data = std::make_tuple(args...); } template auto Get() const -> const typename std::tuple_element>::type& { return std::get(m_data); } private: std::tuple m_data; }; /** * @brief Template specialization example. */ template struct TypeTraits { static constexpr bool IsPointer = false; }; template struct TypeTraits { static constexpr bool IsPointer = true; }; /** * @brief Nested template class. */ template struct Container { template struct Wrapper { Inner value; Outer context; }; }; } // namespace util } // namespace gencpp