template-deduction

Czym są przewodniki dedukcyjne szablonów i kiedy powinniśmy z nich korzystać?

Standard C++17 wprowadza "Przewodniki dedukcyjne szablonów". Domyślam się, że są one związane z nowym argumentem szablonu dla ... są i do czego służą. Czym są przewodniki po szablonach w C++17? Dlaczego (i kiedy) są nam potrzebne? Jak je zadeklarować?

Zrobić funkcję akceptującą opcjonalne, aby zaakceptować nieobowiązkowe?

Próbuję napisać składniowy cukier, w stylu monadowym, nad std::optional. Proszę wziąć pod uwagę: template<class T> vo ... sz funkcje binarne, takie jak operator+(optional, optional), i jest bólem dla funkcji trójargumentowych, 4-ary, itd. funkcje.