DNA Calib 1.1
Project brief
StringView.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
7namespace dna {
8
9class StringView : public trust::ConstArrayView<char> {
10 public:
12
13 public:
14 using Base::ArrayView;
15
16 const char* c_str() const {
17 return dataOrEmpty();
18 }
19
20 operator const char*() const {
21 return dataOrEmpty();
22 }
23
24 const char* operator*() const {
25 return dataOrEmpty();
26 }
27
28 private:
29 const char* dataOrEmpty() const {
30 return (data() == nullptr ? "" : data());
31 }
32
33};
34
35inline bool operator==(const StringView& lhs, const StringView& rhs) {
36 return (static_cast<const StringView::Base&>(lhs) == static_cast<const StringView::Base&>(rhs));
37}
38
39inline bool operator!=(const StringView& lhs, const StringView& rhs) {
40 return !(lhs == rhs);
41}
42
43} // namespace dna
Definition: StringView.h:9
const char * operator*() const
Definition: StringView.h:24
const char * c_str() const
Definition: StringView.h:16
const char * dataOrEmpty() const
Definition: StringView.h:29
A view over a continuous sequence of objects.
Definition: ArrayView.h:55
pointer data()
Definition: ArrayView.h:102
ArrayView()=default
Definition: BinaryStreamReader.h:10
bool operator!=(const StringView &lhs, const StringView &rhs)
Definition: StringView.h:39
bool operator==(const StringView &lhs, const StringView &rhs)
Definition: StringView.h:35