2
* Copyright (C) 2011 Olaf van der Spek
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 2 of the License, or
7
* (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
33
data_ref_basic(const U& c)
35
if (c.begin() == c.end())
38
assign(&*c.begin(), &*c.end());
41
data_ref_basic(const void* b, const void* e)
46
data_ref_basic(const void* b, size_t sz)
51
explicit data_ref_basic(const char* b)
56
const data_ref_basic& clear()
63
void assign(const void* b, const void* e)
65
begin_ = reinterpret_cast<T>(b);
66
end_ = reinterpret_cast<T>(e);
69
void assign(const void* b, size_t sz)
71
begin_ = reinterpret_cast<T>(b);
92
return end() - begin();
97
return begin() == end();
100
friend std::ostream& operator<<(std::ostream& os, data_ref_basic<T> v)
102
os.write(v.data(), v.size());
110
typedef data_ref_basic<const unsigned char*> data_ref;
111
typedef data_ref_basic<const char*> str_ref;