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 {}; |