Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Side by Side Diff: base/template_util_unittest.cc

Issue 2944523002: Improving flat containers interface. (Closed)
Patch Set: Hopefuly, fix for git issue. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/template_util.h" 5 #include "base/template_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/containers/flat_tree.h"
10 #include "base/test/move_only_int.h"
9 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
10 12
11 namespace base { 13 namespace base {
12 namespace { 14 namespace {
13 15
14 enum SimpleEnum { SIMPLE_ENUM }; 16 enum SimpleEnum { SIMPLE_ENUM };
15 enum EnumWithExplicitType : uint64_t { ENUM_WITH_EXPLICIT_TYPE }; 17 enum EnumWithExplicitType : uint64_t { ENUM_WITH_EXPLICIT_TYPE };
16 enum class ScopedEnum { SCOPED_ENUM }; 18 enum class ScopedEnum { SCOPED_ENUM };
17 enum class ScopedEnumWithOperator { SCOPED_ENUM_WITH_OPERATOR }; 19 enum class ScopedEnumWithOperator { SCOPED_ENUM_WITH_OPERATOR };
18 std::ostream& operator<<(std::ostream& os, ScopedEnumWithOperator v) { 20 std::ostream& operator<<(std::ostream& os, ScopedEnumWithOperator v) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 "simple struct should not be printable by value"); 65 "simple struct should not be printable by value");
64 static_assert(!internal::SupportsOstreamOperator<const SimpleStruct&>::value, 66 static_assert(!internal::SupportsOstreamOperator<const SimpleStruct&>::value,
65 "simple struct should not be printable by const ref"); 67 "simple struct should not be printable by const ref");
66 static_assert(internal::SupportsOstreamOperator<StructWithOperator>::value, 68 static_assert(internal::SupportsOstreamOperator<StructWithOperator>::value,
67 "struct with operator<< should be printable by value"); 69 "struct with operator<< should be printable by value");
68 static_assert( 70 static_assert(
69 internal::SupportsOstreamOperator<const StructWithOperator&>::value, 71 internal::SupportsOstreamOperator<const StructWithOperator&>::value,
70 "struct with operator<< should be printable by const ref"); 72 "struct with operator<< should be printable by const ref");
71 73
72 } // namespace 74 } // namespace
75
76 TEST(Functors, Less) {
danakj 2017/06/27 23:48:25 nit: TemplateUtil.Less would be easier to find
dyaroshev 2017/06/28 09:13:59 Done.
77 using ExplicitInt = base::MoveOnlyInt;
78 EXPECT_TRUE(base::less()(ExplicitInt(3), 4));
79 EXPECT_FALSE(base::less()(4, ExplicitInt(3)));
80 EXPECT_TRUE(base::less()(3, 4));
81
82 static_assert(base::internal::IsTransparentCompare<base::less>::value, "");
83 }
84
73 } // namespace base 85 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698