diff options
author | ajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-16 22:37:58 +0000 |
---|---|---|
committer | ajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-16 22:37:58 +0000 |
commit | ba019acba16af46f1cfcd48f55668d430290f8b6 (patch) | |
tree | cd21c0b816c1ca3952711d416d6c9336208b133b /base/template_util_unittest.cc | |
parent | 12c886cdaa29bd2c419bf6c119942378dc7db1ce (diff) | |
download | chromium_src-ba019acba16af46f1cfcd48f55668d430290f8b6.zip chromium_src-ba019acba16af46f1cfcd48f55668d430290f8b6.tar.gz chromium_src-ba019acba16af46f1cfcd48f55668d430290f8b6.tar.bz2 |
Fix is_convertible for windows.
It turns out that if you nest a template inside the initializer list of another template, the namelookup in windows gets all funky. In this case, it couldn't tell that the found name was a function.
Luckily, we could just move the template parameters one level deeper.
BUG=none
TEST=unittests & trybots.
Review URL: http://codereview.chromium.org/6537001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75194 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/template_util_unittest.cc')
-rw-r--r-- | base/template_util_unittest.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/base/template_util_unittest.cc b/base/template_util_unittest.cc index 51d4d33..ea5f0ff 100644 --- a/base/template_util_unittest.cc +++ b/base/template_util_unittest.cc @@ -37,10 +37,8 @@ TEST(TemplateUtilTest, IsNonConstReference) { EXPECT_TRUE(is_non_const_reference<int&>::value); } -#if !defined(OS_WIN) -// TODO(ajwong): Why is is_convertible disabled on windows? TEST(TemplateUtilTest, IsConvertible) { - // Extra parents needed to make EXPECT_*'s parsing happy. Otherwise, + // Extra parens needed to make EXPECT_*'s parsing happy. Otherwise, // it sees the equivalent of // // EXPECT_TRUE( (is_convertible < Child), (Parent > ::value)); @@ -48,8 +46,12 @@ TEST(TemplateUtilTest, IsConvertible) { // Silly C++. EXPECT_TRUE( (is_convertible<Child, Parent>::value) ); EXPECT_FALSE( (is_convertible<Parent, Child>::value) ); + EXPECT_FALSE( (is_convertible<Parent, AStruct>::value) ); + + EXPECT_TRUE( (is_convertible<int, double>::value) ); + EXPECT_TRUE( (is_convertible<int*, void*>::value) ); + EXPECT_FALSE( (is_convertible<void*, int*>::value) ); } -#endif // !defined(OS_WIN) TEST(TemplateUtilTest, IsClass) { EXPECT_TRUE(is_class<AStruct>::value); |