mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-23 18:38:30 +08:00
Fix PR#30303 - no matching function for call to '__ptr_in_range'
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280779 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -2156,12 +2156,18 @@ basic_string<_CharT, _Traits, _Allocator>::append(_InputIterator __first, _Input
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename _Tp>
|
template <class _Tp>
|
||||||
bool __ptr_in_range (const _Tp* __p, const _Tp* __first, const _Tp* __last)
|
bool __ptr_in_range (const _Tp* __p, const _Tp* __first, const _Tp* __last)
|
||||||
{
|
{
|
||||||
return __first <= __p && __p < __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 _CharT, class _Traits, class _Allocator>
|
||||||
template<class _ForwardIterator>
|
template<class _ForwardIterator>
|
||||||
typename enable_if
|
typename enable_if
|
||||||
|
@@ -195,4 +195,13 @@ int main()
|
|||||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
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");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -196,4 +196,13 @@ int main()
|
|||||||
s_long.assign(s_long.begin() + 30, s_long.end());
|
s_long.assign(s_long.begin() + 30, s_long.end());
|
||||||
assert(s_long == "nsectetur/");
|
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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -186,4 +186,12 @@ int main()
|
|||||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1023,4 +1023,18 @@ int main()
|
|||||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.begin(), s_long.end());
|
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/");
|
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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user