Fix PR#30303 - no matching function for call to '__ptr_in_range'

llvm-svn: 280779
This commit is contained in:
Marshall Clow 2016-09-07 03:32:06 +00:00
parent a7ade33d16
commit a77bb8ef34
5 changed files with 47 additions and 1 deletions

View File

@ -2156,12 +2156,18 @@ basic_string<_CharT, _Traits, _Allocator>::append(_InputIterator __first, _Input
return *this;
}
template <typename _Tp>
template <class _Tp>
bool __ptr_in_range (const _Tp* __p, const _Tp* __first, const _Tp* __last)
{
return __first <= __p && __p < __last;
}
template <class _Tp1, class _Tp2>
bool __ptr_in_range (const _Tp1* __p, const _Tp2* __first, const _Tp2* __last)
{
return false;
}
template <class _CharT, class _Traits, class _Allocator>
template<class _ForwardIterator>
typename enable_if

View File

@ -195,4 +195,13 @@ int main()
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
}
{ // test appending a different type
typedef std::string S;
const uint8_t p[] = "ABCD";
S s;
s.append(p, p + 4);
assert(s == "ABCD");
}
}

View File

@ -196,4 +196,13 @@ int main()
s_long.assign(s_long.begin() + 30, s_long.end());
assert(s_long == "nsectetur/");
}
{ // test assigning a different type
typedef std::string S;
const uint8_t p[] = "ABCD";
S s;
s.assign(p, p + 4);
assert(s == "ABCD");
}
}

View File

@ -186,4 +186,12 @@ int main()
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
}
{ // test assigning a different type
typedef std::string S;
const uint8_t p[] = "ABCD";
S s;
s.insert(s.begin(), p, p + 4);
assert(s == "ABCD");
}
}

View File

@ -1023,4 +1023,18 @@ int main()
s_long.replace(s_long.begin(), s_long.begin(), s_long.begin(), s_long.end());
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
}
{ // test assigning a different type
typedef std::string S;
const uint8_t pc[] = "ABCD";
uint8_t p[] = "EFGH";
S s;
s.replace(s.begin(), s.end(), pc, pc + 4);
assert(s == "ABCD");
s.clear();
s.replace(s.begin(), s.end(), p, p + 4);
assert(s == "EFGH");
}
}