А зачем в ichar_traits перегружать compare и find? В Стандарте же записано (я смотрю в драфт С++17), что по умолчанию они используют eq и lt, то есть должно быть достаточно перегрузить только их?
очевидно, eq и lt - не виртуальные методы, и char_traits::compare будет вызывать char_traits::eq независимо от того перегружен ли eq в классах-наследниках
Все материалы конференции C++ CoreHard Spring 2017:
corehard.by/category/corehard-conf-spring-2017/
ruclips.net/p/PLgsLnJ-wgYTZRDRK3jrSOoarFg0ART6Ea
А зачем в ichar_traits перегружать compare и find? В Стандарте же записано (я смотрю в драфт С++17), что по умолчанию они используют eq и lt, то есть должно быть достаточно перегрузить только их?
очевидно, eq и lt - не виртуальные методы, и char_traits::compare будет вызывать char_traits::eq независимо от того перегружен ли eq в классах-наследниках
эту проблему, кстати, решает CRTP про который спрашивают на 32:24 - но к char_traits он не имеет отношения :)