Skip to content

Commit f4a2620

Browse files
committed
using string_view now.
1 parent 4396c29 commit f4a2620

4 files changed

Lines changed: 51 additions & 51 deletions

File tree

ReflectionTemplateLib/rtl/builder/Builder.h

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ namespace rtl::builder
1818
{
1919
struct CtorBuilder : protected ReflectionBuilder
2020
{
21-
CtorBuilder(const std::string& pNamespace, const std::string& pRecordStr,
22-
const std::string& pFunction, traits::uid_t pRecordUid)
21+
CtorBuilder(std::string_view pNamespace, std::string_view pRecordStr,
22+
std::string_view pFunction, traits::uid_t pRecordUid)
2323
: ReflectionBuilder(pFunction, pRecordUid, pRecordStr, pNamespace)
2424
{ }
2525

@@ -31,7 +31,7 @@ namespace rtl::builder
3131
* template params <...>, explicitly specified.
3232
* calling with zero template params will build the default constructor ie, 'RecordBuilder<record_t>::constructor()'
3333
*/ template<class record_t, class ...signature_t>
34-
const Function build() const
34+
constexpr const Function build() const
3535
{
3636
return buildConstructor<record_t, signature_t...>();
3737
}
@@ -59,7 +59,7 @@ namespace rtl::builder
5959
template<>
6060
struct Builder<detail::member::None, void> : protected ReflectionBuilder
6161
{
62-
Builder(traits::uid_t pRecordUid, const std::string& pFunction, const std::string& pNamespace)
62+
Builder(traits::uid_t pRecordUid, std::string_view pFunction, std::string_view pNamespace)
6363
: ReflectionBuilder(pFunction, pRecordUid, detail::RECORD_NONE, pNamespace)
6464
{ }
6565

@@ -70,7 +70,7 @@ namespace rtl::builder
7070
* called on objects returned by 'type::function<void>(..)' & 'RecordBuilder<record_t>::methodStatic<void>(..)'
7171
* template param 'void' is explicitly specified.
7272
*/ template<class return_t>
73-
const Function build(return_t(*pFunctor)()) const
73+
constexpr const Function build(return_t(*pFunctor)()) const
7474
{
7575
return buildFunctor(pFunctor, detail::member::None);
7676
}
@@ -80,7 +80,7 @@ namespace rtl::builder
8080
template<class ...signature_t>
8181
struct Builder<detail::member::None, signature_t...> : protected ReflectionBuilder
8282
{
83-
Builder(traits::uid_t pRecordUid, const std::string& pFunction, const std::string& pNamespace)
83+
Builder(traits::uid_t pRecordUid, std::string_view pFunction, std::string_view pNamespace)
8484
: ReflectionBuilder(pFunction, pRecordUid, detail::RECORD_NONE, pNamespace)
8585
{ }
8686

@@ -91,7 +91,7 @@ namespace rtl::builder
9191
* called on objects returned by 'type::function<...>(..)' & 'RecordBuilder<record_t>::methodStatic<...>(..)'.
9292
* template params are explicitly specified.
9393
*/ template<class return_t>
94-
const Function build(return_t(*pFunctor)(signature_t...)) const
94+
constexpr const Function build(return_t(*pFunctor)(signature_t...)) const
9595
{
9696
return buildFunctor(pFunctor, detail::member::None);
9797
}
@@ -101,7 +101,7 @@ namespace rtl::builder
101101
template<>
102102
struct Builder<detail::member::None> : protected ReflectionBuilder
103103
{
104-
Builder(traits::uid_t pRecordUid, const std::string& pFunction, const std::string& pNamespace)
104+
Builder(traits::uid_t pRecordUid, std::string_view pFunction, std::string_view pNamespace)
105105
: ReflectionBuilder(pFunction, pRecordUid, detail::RECORD_NONE, pNamespace)
106106
{ }
107107

@@ -112,7 +112,7 @@ namespace rtl::builder
112112
* called on the objects returned by 'type::function()' & 'RecordBuilder<record_t>::methodStatic(..)'.
113113
* template params are auto deduced from the function pointer passed.
114114
*/ template<class return_t, class ...signature_t>
115-
const Function build(return_t(*pFunctor)(signature_t...)) const
115+
constexpr const Function build(return_t(*pFunctor)(signature_t...)) const
116116
{
117117
return buildFunctor(pFunctor, detail::member::None);
118118
}
@@ -125,8 +125,8 @@ namespace rtl::builder
125125
template<>
126126
struct Builder<detail::member::Static, void> : protected ReflectionBuilder
127127
{
128-
Builder(traits::uid_t pRecordUid, const std::string& pFunction,
129-
const std::string& pRecordStr, const std::string& pNamespace)
128+
Builder(traits::uid_t pRecordUid, std::string_view pFunction,
129+
std::string_view pRecordStr, std::string_view pNamespace)
130130
: ReflectionBuilder(pFunction, pRecordUid, pRecordStr, pNamespace)
131131
{ }
132132

@@ -137,7 +137,7 @@ namespace rtl::builder
137137
* called on objects returned by 'type::function<void>(..)' & 'RecordBuilder<record_t>::methodStatic<void>(..)'
138138
* template param 'void' is explicitly specified.
139139
*/ template<class return_t>
140-
const Function build(return_t(*pFunctor)()) const
140+
constexpr const Function build(return_t(*pFunctor)()) const
141141
{
142142
return buildFunctor(pFunctor, detail::member::Static);
143143
}
@@ -147,8 +147,8 @@ namespace rtl::builder
147147
template<class ...signature_t>
148148
struct Builder<detail::member::Static, signature_t...> : protected ReflectionBuilder
149149
{
150-
Builder(traits::uid_t pRecordUid, const std::string& pFunction,
151-
const std::string& pRecordStr, const std::string& pNamespace)
150+
Builder(traits::uid_t pRecordUid, std::string_view pFunction,
151+
std::string_view pRecordStr, std::string_view pNamespace)
152152
: ReflectionBuilder(pFunction, pRecordUid, pRecordStr, pNamespace)
153153
{ }
154154

@@ -159,7 +159,7 @@ namespace rtl::builder
159159
* called on objects returned by 'type::function<...>(..)' & 'RecordBuilder<record_t>::methodStatic<...>(..)'.
160160
* template params are explicitly specified.
161161
*/ template<class return_t>
162-
inline const Function build(return_t(*pFunctor)(signature_t...)) const
162+
constexpr const Function build(return_t(*pFunctor)(signature_t...)) const
163163
{
164164
return buildFunctor(pFunctor, detail::member::Static);
165165
}
@@ -169,8 +169,8 @@ namespace rtl::builder
169169
template<>
170170
struct Builder<detail::member::Static> : protected ReflectionBuilder
171171
{
172-
Builder(traits::uid_t pRecordUid, const std::string& pFunction,
173-
const std::string& pRecordStr, const std::string& pNamespace)
172+
Builder(traits::uid_t pRecordUid, std::string_view pFunction,
173+
std::string_view pRecordStr, std::string_view pNamespace)
174174
: ReflectionBuilder(pFunction, pRecordUid, pRecordStr, pNamespace)
175175
{ }
176176

@@ -181,7 +181,7 @@ namespace rtl::builder
181181
* called on the objects returned by 'type::function()' & 'RecordBuilder<record_t>::methodStatic(..)'.
182182
* template params are auto deduced from the function pointer passed.
183183
*/ template<class return_t, class ...signature_t>
184-
const Function build(return_t(*pFunctor)(signature_t...)) const
184+
constexpr const Function build(return_t(*pFunctor)(signature_t...)) const
185185
{
186186
return buildFunctor(pFunctor, detail::member::Static);
187187
}
@@ -194,7 +194,7 @@ namespace rtl::builder
194194
template<>
195195
struct Builder<detail::member::Const, void> : protected ReflectionBuilder
196196
{
197-
Builder(const std::string& pFunction, traits::uid_t pRecordUid)
197+
Builder(std::string_view pFunction, traits::uid_t pRecordUid)
198198
: ReflectionBuilder(pFunction, pRecordUid, detail::INIT_LATER, detail::INIT_LATER)
199199
{ }
200200

@@ -205,7 +205,7 @@ namespace rtl::builder
205205
* called on object returned by 'RecordBuilder<record_t>::methodConst<void>()'
206206
* template param 'void' is explicitly specified.
207207
*/ template<class record_t, class return_t>
208-
const Function build(return_t(record_t::* pFunctor)() const) const
208+
constexpr const Function build(return_t(record_t::* pFunctor)() const) const
209209
{
210210
return buildMethodFunctor(pFunctor);
211211
}
@@ -215,7 +215,7 @@ namespace rtl::builder
215215
template<class ...signature_t>
216216
struct Builder<detail::member::Const, signature_t...> : protected ReflectionBuilder
217217
{
218-
Builder(const std::string& pFunction, traits::uid_t pRecordUid)
218+
Builder(std::string_view pFunction, traits::uid_t pRecordUid)
219219
: ReflectionBuilder(pFunction, pRecordUid, detail::INIT_LATER, detail::INIT_LATER)
220220
{ }
221221

@@ -226,7 +226,7 @@ namespace rtl::builder
226226
* called on object returned by 'RecordBuilder<record_t>::methodConst<...>()'
227227
* template param are explicitly specified.
228228
*/ template<class record_t, class return_t>
229-
const Function build(return_t(record_t::* pFunctor)(signature_t...) const) const
229+
constexpr const Function build(return_t(record_t::* pFunctor)(signature_t...) const) const
230230
{
231231
return buildMethodFunctor(pFunctor);
232232
}
@@ -236,7 +236,7 @@ namespace rtl::builder
236236
template<>
237237
struct Builder<detail::member::Const> : protected ReflectionBuilder
238238
{
239-
Builder(const std::string& pFunction, traits::uid_t pRecordUid)
239+
Builder(std::string_view pFunction, traits::uid_t pRecordUid)
240240
: ReflectionBuilder(pFunction, pRecordUid, detail::INIT_LATER, detail::INIT_LATER)
241241
{ }
242242

@@ -247,7 +247,7 @@ namespace rtl::builder
247247
* called on object returned by 'RecordBuilder<record_t>::methodConst()'
248248
* template params will be auto deduced from the function pointer passed.
249249
*/ template<class record_t, class return_t, class ...signature_t>
250-
const Function build(return_t(record_t::* pFunctor)(signature_t...) const) const
250+
constexpr const Function build(return_t(record_t::* pFunctor)(signature_t...) const) const
251251
{
252252
return buildMethodFunctor(pFunctor);
253253
}
@@ -260,7 +260,7 @@ namespace rtl::builder
260260
template<>
261261
struct Builder<detail::member::NonConst, void> : protected ReflectionBuilder
262262
{
263-
Builder(const std::string& pFunction, traits::uid_t pRecordUid)
263+
Builder(std::string_view pFunction, traits::uid_t pRecordUid)
264264
: ReflectionBuilder(pFunction, pRecordUid, detail::INIT_LATER, detail::INIT_LATER)
265265
{ }
266266

@@ -271,7 +271,7 @@ namespace rtl::builder
271271
* called on object returned by 'RecordBuilder<record_t>::method<void>()'
272272
* template param 'void' is explicitly specified.
273273
*/ template<class record_t, class return_t>
274-
const Function build(return_t(record_t::* pFunctor)()) const
274+
constexpr const Function build(return_t(record_t::* pFunctor)()) const
275275
{
276276
return buildMethodFunctor(pFunctor);
277277
}
@@ -281,7 +281,7 @@ namespace rtl::builder
281281
template<class ...signature_t>
282282
struct Builder<detail::member::NonConst, signature_t...> : protected ReflectionBuilder
283283
{
284-
Builder(const std::string& pFunction, traits::uid_t pRecordUid)
284+
Builder(std::string_view pFunction, traits::uid_t pRecordUid)
285285
: ReflectionBuilder(pFunction, pRecordUid, detail::INIT_LATER, detail::INIT_LATER)
286286
{ }
287287

@@ -292,7 +292,7 @@ namespace rtl::builder
292292
* called on object returned by 'RecordBuilder<record_t>::method<...>()'
293293
* template params are explicitly specified.
294294
*/ template<class record_t, class return_t>
295-
const Function build(return_t(record_t::* pFunctor)(signature_t...)) const
295+
constexpr const Function build(return_t(record_t::* pFunctor)(signature_t...)) const
296296
{
297297
return buildMethodFunctor(pFunctor);
298298
}
@@ -302,7 +302,7 @@ namespace rtl::builder
302302
template<>
303303
struct Builder<detail::member::NonConst> : protected ReflectionBuilder
304304
{
305-
Builder(const std::string& pFunction, traits::uid_t pRecordUid)
305+
Builder(std::string_view pFunction, traits::uid_t pRecordUid)
306306
: ReflectionBuilder(pFunction, pRecordUid, detail::INIT_LATER, detail::INIT_LATER)
307307
{ }
308308

@@ -314,7 +314,7 @@ namespace rtl::builder
314314
* called on object returned by 'RecordBuilder<record_t>::method()'
315315
* template params are auto deduced from the pointer passed.
316316
*/ template<class record_t, class return_t, class ...signature_t>
317-
const Function build(return_t(record_t::* pFunctor)(signature_t...)) const
317+
constexpr const Function build(return_t(record_t::* pFunctor)(signature_t...)) const
318318
{
319319
return buildMethodFunctor(pFunctor);
320320
}

ReflectionTemplateLib/rtl/builder/RecordBuilder.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ namespace rtl::builder
2929

3030
public:
3131

32-
RecordBuilder(const std::string& pNamespace, const std::string& pRecord, traits::uid_t pRecordId)
32+
RecordBuilder(std::string_view pNamespace, const std::string& pRecord, traits::uid_t pRecordId)
3333
: m_recordStr(pRecord)
3434
, m_namespaceStr(pNamespace)
3535
, m_recordId(pRecordId)
@@ -74,7 +74,7 @@ namespace rtl::builder
7474
* used for registering unique static member function, if overload exists, use templated version 'methodStatic<...>()'.
7575
* the 'build(..)' called on return object will accepts static member function pointer only.
7676
* compiler error on 'build(..)' if non-static member or non-member function pointer is passed.
77-
*/ const Builder<detail::member::Static> methodStatic(const std::string& pFunction) const
77+
*/ const Builder<detail::member::Static> methodStatic(std::string_view pFunction) const
7878
{
7979
return Builder<detail::member::Static>(traits::uid<record_t>::value, pFunction, detail::INIT_LATER, detail::INIT_LATER);
8080
}
@@ -88,7 +88,7 @@ namespace rtl::builder
8888
* the 'build(..)' called on return object will accepts static member function pointer only.
8989
* compiler error on 'build(..)' if const member or non-member function pointer is passed.
9090
*/ template<class ...signature_t>
91-
const Builder<detail::member::Static, signature_t...> methodStatic(const std::string& pFunction) const
91+
const Builder<detail::member::Static, signature_t...> methodStatic(std::string_view pFunction) const
9292
{
9393
return Builder<detail::member::Static, signature_t...>(traits::uid<record_t>::value, pFunction, detail::INIT_LATER, detail::INIT_LATER);
9494
}
@@ -100,7 +100,7 @@ namespace rtl::builder
100100
* registers non-const, non-static member functions.
101101
* the 'build(..)' called on return object will accepts non-const, non-static member-function-pointer only.
102102
* compiler error on 'build(..)' if const, static member or non-member function pointer is passed.
103-
*/ const Builder<detail::member::NonConst> method(const std::string& pFunction) const
103+
*/ const Builder<detail::member::NonConst> method(std::string_view pFunction) const
104104
{
105105
return Builder<detail::member::NonConst>(pFunction, traits::uid<record_t>::value);
106106
}
@@ -113,7 +113,7 @@ namespace rtl::builder
113113
* template parameters must be explicitly specified, should be exactly same as the member-function being registered.
114114
* the 'build(..)' called on return object will accepts non-const member-function-pointer only.
115115
* compiler error 'build(..)' if non-const, static member or non-member function pointer is passed.
116-
*/ const Builder<detail::member::Const> methodConst(const std::string& pFunction) const
116+
*/ const Builder<detail::member::Const> methodConst(std::string_view pFunction) const
117117
{
118118
return Builder<detail::member::Const>(pFunction, traits::uid<record_t>::value);
119119
}
@@ -127,7 +127,7 @@ namespace rtl::builder
127127
* the 'build(..)' called on return object will accepts non-const member-function-pointer only.
128128
* compiler error on 'build(..)' if const, static member or non-member function pointer is passed.
129129
*/ template<class ...signature_t>
130-
const Builder<detail::member::NonConst, signature_t...> method(const std::string& pFunction) const
130+
const Builder<detail::member::NonConst, signature_t...> method(std::string_view pFunction) const
131131
{
132132
return Builder<detail::member::NonConst, signature_t...>(pFunction, traits::uid<record_t>::value);
133133
}
@@ -141,7 +141,7 @@ namespace rtl::builder
141141
* the 'build(..)' called on return object will accepts const member-function-pointer only.
142142
* compiler error on 'build(..)' if non-const, static member or non-member function pointer is passed.
143143
*/ template<class ...signature_t>
144-
const Builder<detail::member::Const, signature_t...> methodConst(const std::string& pFunction) const
144+
const Builder<detail::member::Const, signature_t...> methodConst(std::string_view pFunction) const
145145
{
146146
return Builder<detail::member::Const, signature_t...>(pFunction, traits::uid<record_t>::value);
147147
}

ReflectionTemplateLib/rtl/builder/Reflect.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ namespace rtl
3737
* the 'build(..)' called on return object accepts non-member function pointer only.
3838
* compiler error on 'build(..)' if function pointer passed is not a member of class/struct- 'record_t'.
3939
*/ template<class record_t>
40-
constexpr const builder::RecordBuilder<record_t> record(const std::string& pClass)
40+
constexpr const builder::RecordBuilder<record_t> record(std::string_view pClass)
4141
{
42-
return builder::RecordBuilder<record_t>(m_namespaceStr, pClass, traits::uid<record_t>::value);
42+
return builder::RecordBuilder<record_t>(m_namespaceStr, std::string(pClass), traits::uid<record_t>::value);
4343
}
4444

4545
/* @method: function<...>()
@@ -51,9 +51,9 @@ namespace rtl
5151
* the 'build(..)' called on return object accepts non-member function pointer only.
5252
* compiler error on 'build(..)' if any member function pointer is passed.
5353
*/ template<class ...signature_t>
54-
constexpr const builder::Builder<detail::member::None, signature_t...> function(const std::string& pFunction)
54+
constexpr const builder::Builder<detail::member::None, signature_t...> function(std::string_view pFunction)
5555
{
56-
return builder::Builder<detail::member::None, signature_t...>(traits::uid<>::none, pFunction, m_namespaceStr);
56+
return builder::Builder<detail::member::None, signature_t...>(traits::uid<>::none, std::string(pFunction), m_namespaceStr);
5757
}
5858

5959
/* @function: function()
@@ -62,9 +62,9 @@ namespace rtl
6262
* registers only non-member functions.
6363
* the 'build(..)' called on return object accepts non-member function pointer only.
6464
* compiler error on 'build(..)' if member function pointer is passed.
65-
*/ const builder::Builder<detail::member::None> function(const std::string& pFunction)
65+
*/ const builder::Builder<detail::member::None> function(std::string_view pFunction)
6666
{
67-
return builder::Builder<detail::member::None>(traits::uid<>::none, pFunction, m_namespaceStr);
67+
return builder::Builder<detail::member::None>(traits::uid<>::none, std::string(pFunction), m_namespaceStr);
6868
}
6969

7070
private:
@@ -109,13 +109,13 @@ namespace rtl
109109
}
110110

111111
template<class record_t>
112-
constexpr const builder::RecordBuilder<record_t> record(const std::string& pClass)
112+
constexpr const builder::RecordBuilder<record_t> record(std::string_view pClass)
113113
{
114114
return ns(detail::NAMESPACE_GLOBAL).record<record_t>(pClass);
115115
}
116116

117117
template<class ...signature_t>
118-
constexpr const builder::Builder<detail::member::None, signature_t...> function(const std::string& pFunction)
118+
constexpr const builder::Builder<detail::member::None, signature_t...> function(std::string_view pFunction)
119119
{
120120
constexpr bool hasConstRValueRef = ((std::is_const_v<std::remove_reference_t<signature_t>> && std::is_rvalue_reference_v<signature_t>) || ...);
121121
static_assert(!hasConstRValueRef, "Registration of functions with 'const T&&' parameters is not allowed.");

0 commit comments

Comments
 (0)