Replace deprecated std::iterator inheritance (#5111)
std::iterator is deprecated since C++17. E.g. when using the standard library of gcc 12, deprecation warnings are shown. There is some background info here: https://www.fluentcpp.com/2018/05/08/std-iterator-deprecated/
This commit is contained in:
Родитель
d0c4285ddc
Коммит
d529af3e2b
|
@ -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<std::input_iterator_tag,
|
||||
std::pair<llvm::Type *, DxilFieldAnnotation *>> {
|
||||
class DxilStructTypeIterator {
|
||||
private:
|
||||
llvm::StructType *STy;
|
||||
DxilStructAnnotation *SAnnotation;
|
||||
unsigned index;
|
||||
|
||||
public:
|
||||
using iterator_category = std::input_iterator_tag;
|
||||
using value_type = std::pair<llvm::Type *, DxilFieldAnnotation *>;
|
||||
using difference_type = std::ptrdiff_t;
|
||||
using pointer = value_type *;
|
||||
using reference = value_type &;
|
||||
|
||||
DxilStructTypeIterator(llvm::StructType *sTy,
|
||||
DxilStructAnnotation *sAnnotation, unsigned idx = 0);
|
||||
// prefix
|
||||
|
|
|
@ -465,8 +465,13 @@ struct DxilPartIsType {
|
|||
};
|
||||
|
||||
/// Use this type as an iterator over the part headers.
|
||||
struct DxilPartIterator : public std::iterator<std::input_iterator_tag,
|
||||
const DxilContainerHeader *> {
|
||||
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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче