Должны ли все / большинство функций установки в C ++ 11 быть написаны как шаблоны функций, принимающие универсальные ссылки?

У меня была ситуация, когда у нас были даты, а не даты, и даты могут перекрываться только с начала / конца. Пример ниже:

(зеленый - текущий интервал, синие блоки - это допустимые интервалы, красные - перекрывающиеся интервалы).

Я адаптировал ответ Яна Нельсона на следующее решение:

   (startB <= startA && endB > startA)
|| (startB >= startA && startB < endA)

Это соответствует всем случаям перекрытия, но игнорирует разрешенные совпадения.

63
задан Andy Prowl 7 January 2013 в 14:02
поделиться