Chromium Code Reviews| Index: base/template_util_unittest.cc | 
| diff --git a/base/template_util_unittest.cc b/base/template_util_unittest.cc | 
| index 921596474b6d9a38991506396a1c64148025885d..3b7d9f7e4bfd5f2cea39e74878957c8a7f5aba14 100644 | 
| --- a/base/template_util_unittest.cc | 
| +++ b/base/template_util_unittest.cc | 
| @@ -30,6 +30,32 @@ static_assert(!is_non_const_reference<const int&>::value, | 
| "IsNonConstReference"); | 
| static_assert(is_non_const_reference<int&>::value, "IsNonConstReference"); | 
| +// underlying_value | 
| +enum ClassicEnum : int { CLASSIC_ENUM_A }; | 
| +enum class ClassyEnum : int { A }; | 
| + | 
| +struct Uncopyable { | 
| + // Uncopyable() = default; | 
| 
 
Nico
2016/08/30 21:11:11
?
 
Sidney San Martín
2016/08/30 21:24:32
Thanks, missed that. Done.
 
 | 
| + Uncopyable(Uncopyable&&) = default; | 
| + Uncopyable(const Uncopyable&) = delete; | 
| +}; | 
| + | 
| +static_assert( | 
| + std::is_same<decltype(underlying_value(Uncopyable{})), Uncopyable>::value, | 
| + "underlying_value: failed to return an object without copying."); | 
| + | 
| +static_assert( | 
| + std::is_same<decltype(underlying_value(int64_t(10))), int64_t>::value, | 
| + "underlying_value: failed to return an integer as its own type."); | 
| + | 
| +static_assert( | 
| + std::is_integral<decltype(underlying_value(CLASSIC_ENUM_A))>::value, | 
| + "underlying_value: failed to return an unscoped enum as an integer."); | 
| + | 
| +static_assert( | 
| + std::is_integral<decltype(underlying_value(ClassyEnum::A))>::value, | 
| + "underlying_value: failed to return a scoped enum as an integer."); | 
| + | 
| class AssignParent {}; | 
| class AssignChild : AssignParent {}; |