|
|
|
@ -3348,6 +3348,7 @@ For example, when using an `ACTION` as a stub action for mock function: |
|
|
|
|
int DoSomething(bool flag, int* ptr); |
|
|
|
|
``` |
|
|
|
|
we have: |
|
|
|
|
|
|
|
|
|
| **Pre-defined Symbol** | **Is Bound To** | |
|
|
|
|
|:-----------------------|:----------------| |
|
|
|
|
| `arg0` | the value of `flag` | |
|
|
|
@ -3509,6 +3510,7 @@ is asked to infer the type of `x`? |
|
|
|
|
If you are writing a function that returns an `ACTION` object, you'll |
|
|
|
|
need to know its type. The type depends on the macro used to define |
|
|
|
|
the action and the parameter types. The rule is relatively simple: |
|
|
|
|
|
|
|
|
|
| **Given Definition** | **Expression** | **Has Type** | |
|
|
|
|
|:---------------------|:---------------|:-------------| |
|
|
|
|
| `ACTION(Foo)` | `Foo()` | `FooAction` | |
|
|
|
@ -3516,7 +3518,7 @@ the action and the parameter types. The rule is relatively simple: |
|
|
|
|
| `ACTION_P(Bar, param)` | `Bar(int_value)` | `BarActionP<int>` | |
|
|
|
|
| `ACTION_TEMPLATE(Bar, HAS_m_TEMPLATE_PARAMS(...), AND_1_VALUE_PARAMS(p1))` | `Bar<t1, ..., t_m>(int_value)` | `FooActionP<t1, ..., t_m, int>` | |
|
|
|
|
| `ACTION_P2(Baz, p1, p2)` | `Baz(bool_value, int_value)` | `BazActionP2<bool, int>` | |
|
|
|
|
| `ACTION_TEMPLATE(Baz, HAS_m_TEMPLATE_PARAMS(...), AND_2_VALUE_PARAMS(p1, p2))` | `Baz<t1, ..., t_m>(bool_value, int_value)` | `FooActionP2<t1, ..., t_m, bool, int>` | |
|
|
|
|
| `ACTION_TEMPLATE(Baz, HAS_m_TEMPLATE_PARAMS(...), AND_2_VALUE_PARAMS(p1, p2))`| `Baz<t1, ..., t_m>(bool_value, int_value)` | `FooActionP2<t1, ..., t_m, bool, int>` | |
|
|
|
|
| ... | ... | ... | |
|
|
|
|
|
|
|
|
|
Note that we have to pick different suffixes (`Action`, `ActionP`, |
|
|
|
|