template<typename T> concept WesternishName = requires (T t) { { t.firstName } -> convertible_to<string>; { t.lastName } -> convertible_to<string>; }; auto concatenate(WesternishName auto t) { return t.firstName + " " + t.lastName; }