VulkN-HPP中的奇怪C++语法

VulkN-HPP中的奇怪C++语法,c++,C++,我一直在研究vulkan hpp源代码,试图了解如何管理结构链。我发现这个奇怪的语法行标记有注释,与使用模板关键字作为成员类型有关。此外,它后面是一个函数调用,没有;前面的 template<typename X, typename Y, typename ...Z, typename Dispatch> VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties

我一直在研究vulkan hpp源代码,试图了解如何管理结构链。我发现这个奇怪的语法行标记有注释,与使用模板关键字作为成员类型有关。此外,它后面是一个函数调用,没有;前面的

  template<typename X, typename Y, typename ...Z, typename Dispatch>
  VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
  {
    StructureChain<X, Y, Z...> structureChain;
    VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>(); //This line
    d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
    return structureChain;
  }
有人能帮我弄明白这行的意思吗?

这个模板关键字用于消除以下表达式作为模板实例化的歧义

structureChain类型取决于模板参数,因此编译器不知道如何解释以下get此模板关键字用于消除以下表达式作为模板实例化的歧义

structureChain类型取决于模板参数,因此编译器不知道如何解释以下getrelated/dupe:related/dupe: