summaryrefslogtreecommitdiffstats
path: root/base/template_util_unittest.cc
diff options
context:
space:
mode:
authorajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-16 22:37:58 +0000
committerajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-16 22:37:58 +0000
commitba019acba16af46f1cfcd48f55668d430290f8b6 (patch)
treecd21c0b816c1ca3952711d416d6c9336208b133b /base/template_util_unittest.cc
parent12c886cdaa29bd2c419bf6c119942378dc7db1ce (diff)
downloadchromium_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.cc10
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);