add constructor for array with iterators or pointers
This commit is contained in:
@@ -107,6 +107,17 @@ namespace OpenVulkano
|
||||
}
|
||||
}
|
||||
|
||||
template<typename InputIt, std::enable_if_t<!std::is_same_v<typename std::iterator_traits<InputIt>::value_type, void>, int> = 0>
|
||||
Array(InputIt first, InputIt last) : size(std::distance(first, last)), data(MakeBuffer(size))
|
||||
{
|
||||
size_t i = 0;
|
||||
while (first != last)
|
||||
{
|
||||
new (&data[i++]) T(*first);
|
||||
++first;
|
||||
}
|
||||
}
|
||||
|
||||
~Array() noexcept
|
||||
{
|
||||
ClearData();
|
||||
@@ -354,4 +365,7 @@ namespace OpenVulkano
|
||||
{
|
||||
return !(rhs < lhs);
|
||||
}
|
||||
|
||||
template<typename InputIt>
|
||||
Array(InputIt first, InputIt last) -> Array<typename std::iterator_traits<InputIt>::value_type>;
|
||||
}
|
||||
Reference in New Issue
Block a user