#include <string>
#include <type_traits>

class Cust {
    private:
        std::string first, last;
        int id;
    public:
        template<typename S1, typename S2 = std::string>
        requires std::is_convertible_v<S1, std::string>
        Cust (S1&& f, S2&& l = "", int i = 0) : first(std::forward<S1>(f)), last(std::forward<S2>(l)), id(i)
        {}
};

int main()
{
    Cust g = "kakrokei";
}
