Angular6 Материал таблицы нескольких фильтров не работает

Правильно ли, что существует некоторая двусмысленность относительно того, когда операторы равенства с указателями являются UB?

Нет, потому что этот отрывок из п. 6.5.9 (3):

Операторы == и != аналогичны реляционным операторам, за исключением их более низкого приоритета.

Предполагает, что из раздела 6.5.9 (6) также применяется к Операторы равенства:

При сравнении двух указателей [...] Во всех остальных случаях поведение не определено.

Если нет двусмысленности, когда точное сравнение указателей с операторами равенства будет UB?

Существует неопределенное поведение во всех случаях, для которых стандарт явно не определяет поведение.

Всегда ли UB, если at

§6.3.2.3 (5):

Целое число может быть преобразовано в любой тип указателя. За исключением, как указано ранее, результат определяется реализацией, может быть неправильно выровнен, может не указывать на объект ссылочного типа и может быть ловушечным представлением.

Что делать, если один указатель ссылается на память, которая была free d?

§6.2.4 (2):

Значение указателя становится неопределенным, когда объект, на который он указывает достигает конца своего времени жизни.

можно сделать вывод, что никогда не существует UB в том смысле, что все «другие» сравнения должны давать false?

No. Стандарт определяет, при каких условиях два указателя должны сравнивать равные, и при каких условиях два указателя должны сравнивать не равные. Любое сравнение равенств между двумя указателями, которые выходят за пределы обоих этих двух наборов условий, вызывает неопределенное поведение.

Действительно ли в §6.5.9 (6) означает, что сравнение равенства бессмысленных, но поразрядных равных указателей всегда должно быть ложным ?

Нет, он не определен.

0
задан Indrajith Ekanayake 20 March 2019 в 03:29
поделиться

1 ответ

Я никогда не использовал это, и я не знаю, правильна ли следующая реализация. Я думаю, это может быть улучшено с большим отрывом.

StackBlitz

По сути, из того, что я понимаю, по умолчанию поведение при установке фильтра заключается в проверке, существует ли это значение в данных.

Но в вашем случае вы хотите проверить различные столбцы и выполнить «множественный» фильтр.

вам нужно предоставить собственную функцию filterPredicate и обработать там свой фильтр

0
ответ дан Crocsx 20 March 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: