diff --git a/include/dxc/DXIL/DxilTypeSystem.h b/include/dxc/DXIL/DxilTypeSystem.h index ec70432aa..33b873ed1 100644 --- a/include/dxc/DXIL/DxilTypeSystem.h +++ b/include/dxc/DXIL/DxilTypeSystem.h @@ -315,15 +315,19 @@ DXIL::SigPointKind SigPointFromInputQual(DxilParamInputQual Q, DXIL::ShaderKind void RemapObsoleteSemantic(DxilParameterAnnotation ¶mInfo, DXIL::SigPointKind sigPoint, llvm::LLVMContext &Context); -class DxilStructTypeIterator - : public std::iterator> { +class DxilStructTypeIterator { private: llvm::StructType *STy; DxilStructAnnotation *SAnnotation; unsigned index; public: + using iterator_category = std::input_iterator_tag; + using value_type = std::pair; + using difference_type = std::ptrdiff_t; + using pointer = value_type *; + using reference = value_type &; + DxilStructTypeIterator(llvm::StructType *sTy, DxilStructAnnotation *sAnnotation, unsigned idx = 0); // prefix diff --git a/include/dxc/DxilContainer/DxilContainer.h b/include/dxc/DxilContainer/DxilContainer.h index 6f24c163d..78871835c 100644 --- a/include/dxc/DxilContainer/DxilContainer.h +++ b/include/dxc/DxilContainer/DxilContainer.h @@ -465,8 +465,13 @@ struct DxilPartIsType { }; /// Use this type as an iterator over the part headers. -struct DxilPartIterator : public std::iterator { +struct DxilPartIterator { + using iterator_category = std::input_iterator_tag; + using value_type = const DxilContainerHeader *; + using difference_type = std::ptrdiff_t; + using pointer = value_type *; + using reference = value_type &; + const DxilContainerHeader *pHeader; uint32_t index; diff --git a/lib/DxilContainer/DxilContainer.cpp b/lib/DxilContainer/DxilContainer.cpp index 2d5a22bcb..39f113ab9 100644 --- a/lib/DxilContainer/DxilContainer.cpp +++ b/lib/DxilContainer/DxilContainer.cpp @@ -103,7 +103,7 @@ const DxilPartHeader *GetDxilPartByType(const DxilContainerHeader *pHeader, Dxil return nullptr; } const DxilPartIterator partIter = - find_if(begin(pHeader), end(pHeader), DxilPartIsType(fourCC)); + std::find_if(begin(pHeader), end(pHeader), DxilPartIsType(fourCC)); if (partIter == end(pHeader)) { return nullptr; }