A B C 1as chs == nullptr 1as == nullptr 1as "1as" == nullptr 1as == nullptr [0, 1, 1, 2, 3, 5, 8, 13] ints == nullptr [0, 1, 1, 2, 3, 5, 8, 13] == nullptr [0, 1, 1, 2, 3, 5, 8, 13] nullptr cnptr != nullptr nullptr != nullptr 0 A == C 0 == 100 int Foo{} f1 == f2 Foo{} == Foo{} omg dummy == "tralala" omg == tralala "tralala" == dummy tralala == omg [1, 2, 3] vec1 == vec2 [1, 2, 3] == [1, 2, 4] [1, 42, 3] lst_1 == lst_2 [1, 42, 3] == [1, 2, 666] s1 == s2 MyOtherType: 42 == MyOtherType: 666 s1=MyOtherType: 42 s2=MyOtherType: 666 s1 == s2 MyOtherType: 42 == MyOtherType: 666 s1=MyOtherType: 42 s2=MyOtherType: 666 MyOtherType: 42 is not really MyOtherType: 666 "a" == doctest::Contains("aaa") a == Contains( aaa ) MyTypeInherited<int>(5, 4) 5 Program code.