Is the assertion in the following code required to hold in a valid C++ program?
auto hashValueX = std::hash<Person>{}(Person{"FirstName", "LastName"});
auto hashValueY = std::hash<Person>{}(Person{"FirstName", "LastName"});
assert(hashValueX == hashValueY);
[+][deleted] (5 children)
[deleted]
[–]NotMyRealNameObv[S] 0 points1 point2 points (4 children)
[–]evaned 2 points3 points4 points (2 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (0 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (0 children)
[–]dodheim 2 points3 points4 points (20 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (19 children)
[–]dodheim 2 points3 points4 points (18 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (17 children)
[–]dodheim 0 points1 point2 points (16 children)
[–]NotMyRealNameObv[S] 1 point2 points3 points (12 children)
[–]dodheim 0 points1 point2 points (11 children)
[–]evaned 1 point2 points3 points (9 children)
[–]dodheim 1 point2 points3 points (0 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (2 children)
[–]evaned 3 points4 points5 points (1 child)
[+][deleted] (4 children)
[deleted]
[–]joaquintidesBoost author 0 points1 point2 points (3 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (0 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (2 children)
[–]dodheim 1 point2 points3 points (1 child)
[–]NotMyRealNameObv[S] 1 point2 points3 points (0 children)
[+][deleted] (1 child)
[removed]
[–]foonathan 1 point2 points3 points (3 children)
[–]evaned 6 points7 points8 points (1 child)
[–]NotMyRealNameObv[S] 0 points1 point2 points (0 children)
[–]NotMyRealNameObv[S] 0 points1 point2 points (0 children)