@@ -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 }
0 commit comments