Update StructureChain.hpp
authorAndreas Süßenbach <asuessenbach@nvidia.com>
Wed, 21 Jun 2023 07:17:06 +0000 (09:17 +0200)
committerGitHub <noreply@github.com>
Wed, 21 Jun 2023 07:17:06 +0000 (09:17 +0200)
snippets/StructureChain.hpp

index f21ef99..5b5e467 100644 (file)
       return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
     }
 
+    // assign a complete structure to the StructureChain without modifying the chaining
+    template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
+    StructureChain & assign( const T & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      T &    lhs   = get<T, Which>();
+      void * pNext = lhs.pNext;
+      lhs          = rhs;
+      lhs.pNext    = pNext;
+           return *this;
+    }
+
     template <typename ClassType, size_t Which = 0>
     typename std::enable_if<
       std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&