cplusplus / cplusplus/draft

[intro.execution] Is it possible to clarify the second bullet for immediate subexpressions

Open
#4,525 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TeX
Stars
221
Forks
813
Avg merge
16h 4m
Merged PRs (30d)
36

Description

As stated in the definition for immediate subexpressions

The immediate subexpressions of an expression E are

  • [...]
  • any function call that E implicitly invokes

Does it refer to the implicit function call that appears in the lexically part of the expression E or any such function call invoked when evaluating the expression E? I mean, in the following two examples

class Test{
  Test(){}
  ~Test(){}
  int a;
};
int main(){
   Test{}.a; // this expression will implicitly invoke the constructor and destructor of class `Test`
}

In this example, these implicitly invoked function calls appear in the lexically part of the expression Test{}.a.

As a contrast, see the second example

class Test{
  Test(){}
  ~Test(){}
  int a;
};
void fun(){
  Test t{};
}
int main(){
  fun();
}

In this example, evaluate the postfix-expression, namely the function call fun(), will implicitly invoke the constructor and destructor of class T which appear in its function body.

It's unclear what's the intent of the bullet second. These two kinds of understanding have a large difference.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the quoted definition of immediate subexpressions and compare its wording against the two Test and fun() examples in the issue. Clarify whether the second bullet covers only calls lexically within E or also calls made while evaluating E; done when the intended scope is stated unambiguously.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.