Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
MODMED
modmedLog
Commits
af60ff71
Commit
af60ff71
authored
Aug 29, 2019
by
EXT Arnaud Clère
Browse files
minor changes
parent
dfad61fe
Changes
1
Hide whitespace changes
Inline
Side-by-side
tests/QBind/QBind.h
View file @
af60ff71
...
...
@@ -135,11 +135,7 @@ struct QBind {
};
//!< A pair of T value reference and defaultValue to use instead of null()
template
<
typename
T
>
struct
QBindDefault
{
T
&
value
;
const
T
&
defaultValue
;
};
template
<
typename
T
>
struct
QBindDefault
{
T
&
value
;
const
T
&
defaultValue
;
};
// //////////////////////////////////////////////////////////////////////////
// Generic fluent interface for traversing structured values and processing them along the way:
...
...
@@ -170,8 +166,8 @@ public:
using
TResult
=
typename
T_
::
TResult
;
//!< the result of the traversal
operator
bool
()
noexcept
{
return
outer
.
operator
bool
();
}
//!< Drives QBind<T>::bind() traversal
TResult
*
operator
->
()
noexcept
{
return
outer
.
operator
->
();
}
operator
bool
()
const
noexcept
{
return
outer
.
operator
bool
();
}
//!< Drives QBind<T>::bind() traversal
TResult
*
operator
->
()
noexcept
{
return
outer
.
operator
->
();
}
/**/
Val
<
T_
>
meta
(
QIdentifierLiteral
&
n
,
QAsciiData
&
m
)
{
outer
->
_meta
(
n
,
m
);
return
std
::
move
(
*
this
);
}
...
...
@@ -219,9 +215,8 @@ public:
// T_ can be either a TResult or any combination of nested Seq or Rec like Rec<Seq<TResult>
using
TResult
=
typename
T_
::
TResult
;
operator
bool
()
noexcept
{
return
outer
.
operator
bool
();
}
//!< Drives QBind<T>::bind() traversal
TResult
*
operator
->
()
noexcept
{
return
outer
.
operator
->
();
}
TResult
result
()
{
return
operator
TResult
();
}
operator
bool
()
const
noexcept
{
return
outer
.
operator
bool
();
}
//!< Drives QBind<T>::bind() traversal
TResult
*
operator
->
()
noexcept
{
return
outer
.
operator
->
();
}
operator
TResult
()
{
return
out
();
/* calls T_::operator TResult() if T_ != TResult */
}
/**/
T_
out
()
{
return
outer
->
_out
()
?
std
::
move
(
outer
)
:
T_
();
}
...
...
@@ -266,10 +261,9 @@ public:
// T_ can be either a TResult or any combination of nested Seq or Rec like Seq<Rec<TResult>
using
TResult
=
typename
T_
::
TResult
;
operator
bool
()
noexcept
{
return
outer
.
operator
bool
();
}
//!< Drives QBind<T>::bind() traversal
TResult
*
operator
->
()
noexcept
{
return
outer
.
operator
->
();
}
TResult
result
()
{
return
operator
TResult
();
}
operator
TResult
()
{
return
out
();
/* calls T_::operator TResult() if T_ != TResult */
}
operator
bool
()
const
noexcept
{
return
outer
.
operator
bool
();
}
//!< Drives QBind<T>::bind() traversal
TResult
*
operator
->
()
noexcept
{
return
outer
.
operator
->
();
}
operator
TResult
()
{
return
out
();
/* calls T_::operator TResult() if T_ != TResult */
}
/**/
T_
out
(
)
{
return
outer
->
_out
(
)
?
std
::
move
(
outer
)
:
T_
();
}
Val
<
Rec
<
T_
>>
item
(
QIdentifier
&
n
)
{
return
outer
->
_item
(
n
)
?
Val
<
Rec
<
T_
>>
(
std
::
move
(
*
this
))
:
Val
<
Rec
<
T_
>>
();
}
...
...
@@ -323,18 +317,16 @@ class Cur
{
Q_DISABLE_COPY
(
Cur
)
public:
Q_ENABLE_MOVE
(
Cur
,
std
::
swap
(
impl
,
o
.
impl
);
)
Q_ENABLE_MOVE
_DEFAULT
(
Cur
)
using
TResult
=
Cur
;
explicit
Cur
(
TImpl
*
i
)
:
impl
(
i
)
{
Q_ASSERT
(
impl
);
}
BindMode
mode
()
const
noexcept
{
return
impl
?
impl
->
mode
()
:
BindMode
::
Invalid
;
}
operator
bool
()
noexcept
{
return
impl
&&
impl
->
_isOk
();
}
//!< Drives QBind<T>::bind() traversal
Cur
*
operator
->
()
noexcept
{
return
this
;
}
Val
<
Cur
>
value
()
noexcept
{
return
Val
<
Cur
>
(
std
::
move
(
*
this
));
}
BindMode
mode
()
const
noexcept
{
return
impl
?
impl
->
mode
()
:
BindMode
::
Invalid
;
}
operator
bool
()
const
noexcept
{
return
impl
&&
impl
->
_isOk
();
}
//!< Drives QBind<T>::bind() traversal
Cur
*
operator
->
()
noexcept
{
return
this
;
}
Val
<
Cur
>
value
()
noexcept
{
return
Val
<
Cur
>
(
std
::
move
(
*
this
));
}
void
setChoice
(
bool
c
)
{
if
(
impl
)
impl
->
_setChoice
(
c
);
}
void
reportError
(
QIdentifierLiteral
e
)
{
if
(
impl
)
impl
->
_reportError
(
e
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment