Can ODR be violated if a template definition is only ever instantiated with different parameters?

I’m trying to figure out whether the following test program is well-formed. It’s not clear to me whether the definition of function template my_min violates ODR or not. The program consists of 3 translation units:

// unit1.cpp

template <typename T>
T my_min(T a, T b)
{
    return my_less(a, b) ? a : b;
}

struct Test1 {};

inline bool my_less(Test1, Test1)
{
    return true;
}

// Explicit instantiation. Only in this translation unit.
template
Test1 my_min<Test1>(Test1, Test1);
// unit2.cpp

template <typename T>
T my_min(T a, T b)
{
    return my_less(a, b) ? a : b;
}

struct Test2 {};

inline bool my_less(Test2, Test2)
{
    return false;
}

// Explicit instantiation. Only in this translation unit.
template
Test2 my_min<Test2>(Test2, Test2);
// test.cpp, and maybe many other translation units

template <typename T>
T my_min(T a, T b);

// There's no definition of my_min<T>(T, T) in this translation unit.
// That should be ok as long as some other translation unit provides explicit instantiation.

struct Test1 {};
struct Test2 {};

void test()
{
    Test1     t1;
    Test2     t2;

    my_min(t1, t1);
    my_min(t2, t2);
}

Though the definition of my_min consists of exactly the same sequence of tokens in both unit1.cpp and unit2.cpp, it contains dependent expression my_less(a, b).

The standard (the current draft) states that:

If D is a template and is defined in more than one translation unit, the requirements apply both to names from the template’s enclosing scope used in the template definition, and also to dependent names at the point of instantiation

Requirements mentioned here are quite numerous, and one of them is giving me troubles:

In each such definition, corresponding names, looked up according to [basic.lookup], shall refer to the same entity, after overload resolution ([over.match]) and after matching of partial template specialization

Obviously, dependent name my_less, when looked up at the point of instantiation, refers to different entities: my_less(Test1, Test1) and my_less(Test2, Test2). Which, I dare say, is quite expected since it’s dependent.

So the question is: is this a violation of ODR requirements quoted above (or any other requirements, for that matter)?

I have a gut feeling that this should not be a violation, since a similar scenario pops up every time some translation unit defines a private class (like Test1 and Test2 above) along with functions like swap() and begin() for that class, and then instantiates some standard algorithm for that class which would find those functions via ADL at the point of instantiation. That scenario is quite common… It can’t be wrong, right?

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật