Home » Community » U++ community news and announcements » 2022(?).2 beta
Re: 2022(?).2 beta [message #59383 is a reply to message #59382] |
Mon, 19 December 2022 19:10 |
Lance
Messages: 527 Registered: March 2007
|
Contributor |
|
|
And some of the viable options if multi-c++-version support is a necessity (as proposed by Klugier and me):
1. [=] to [&] when necessary. Make local copies of variables that are originally captured by value with undesired modification, and refer only to the copy in the lambda body. A fictitious example:
void ClassName::FunctionName()
{
int i = 0;
auto f = [=]{ this->DoSomething(); ++i; };
....
}
should be rewrite to
void ClassName::FunctionName()
{
int i = 0;
int j = i;
auto f = [&]{ this->DoSomething(); ++j; };
....
}
pros: concise capture list; no unwanted GLOBAL MACRO;
cons: it's time consuming and error-prone for the change. Majority of affected lambda bodys need to be analysed individually to make copy& refer only to copy manually for affected variables. You get no help from the compiler. If you miss changing one of the reference to old variable name, or miss to change one of the variable you don't want to be modified, a bug arise. And it could be subtle to discover and fix all the errors. And there is no mechanism to enforce the rule, developers/maintainers (mainly both of you atm) has to watch out and be disciplined;
option 2: list individual variable in the capture list.
Pro and cons are quite similar to option 1. Less chance of subtle bugs. Potentially long and tedious capture list.
option 3: MACRO
pros: clean, fast, standard practice. Other u++ users can choose to use the MACRO in their own code to smoothen future transition form c++14 to c++20.
cons: both of you abhor the MACRO that needs to be introduced. come on guys, if it's just because you don't like the name, feel free to choose a better one.
Or shall we start a poll-like thing so that more input can be received? I particularly are interested to hear what @Oblivion and @Koldo have to say on this topic.
[Updated on: Mon, 19 December 2022 19:42] Report message to a moderator
|
|
|
|
|
2022(?).2 beta
By: mirek on Sat, 03 December 2022 15:47
|
|
|
Re: 2022(?).2 beta
By: Novo on Sun, 04 December 2022 17:48
|
|
|
Re: 2022(?).2 beta
By: mr_ped on Thu, 08 December 2022 00:54
|
|
|
Re: 2022(?).2 beta
By: mirek on Fri, 09 December 2022 09:56
|
|
|
Re: 2022(?).2 beta
By: Tom1 on Sat, 10 December 2022 19:17
|
|
|
Re: 2022(?).2 beta
By: mirek on Sat, 10 December 2022 23:39
|
|
|
Re: 2022(?).2 beta
By: Tom1 on Sun, 11 December 2022 19:03
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 11 December 2022 19:45
|
|
|
Re: 2022(?).2 beta
By: mirek on Sun, 11 December 2022 20:02
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 11 December 2022 21:13
|
|
|
Re: 2022(?).2 beta
By: mirek on Sun, 11 December 2022 22:54
|
|
|
Re: 2022(?).2 beta
By: Klugier on Sun, 11 December 2022 23:08
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 12 December 2022 00:47
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 12 December 2022 10:44
|
|
|
Re: 2022(?).2 beta
By: Lance on Tue, 13 December 2022 03:19
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 12 December 2022 00:52
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 12 December 2022 22:18
|
|
|
Re: 2022(?).2 beta
By: Lance on Tue, 13 December 2022 03:21
|
|
|
Re: 2022(?).2 beta
By: Tom1 on Tue, 13 December 2022 10:25
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 10:45
|
|
|
Re: 2022(?).2 beta
By: Tom1 on Tue, 13 December 2022 10:56
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 11:08
|
|
|
Re: 2022(?).2 beta
By: Tom1 on Tue, 13 December 2022 11:42
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 11:57
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 11:58
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 13:21
|
|
|
Re: 2022(?).2 beta
By: Tom1 on Tue, 13 December 2022 13:30
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 14:40
|
|
|
Re: 2022(?).2 beta
By: mdelfede on Sun, 18 December 2022 23:03
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 23:14
|
|
|
Re: 2022(?).2 beta
By: Klugier on Sun, 18 December 2022 23:35
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 19 December 2022 00:46
|
|
|
Re: 2022(?).2 beta
By: zsolt on Mon, 12 December 2022 12:42
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 12 December 2022 12:59
|
|
|
Re: 2022(?).2 beta
By: zsolt on Mon, 12 December 2022 13:24
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 12 December 2022 22:17
|
|
|
Re: 2022(?).2 beta
By: zsolt on Tue, 13 December 2022 17:33
|
|
|
Re: 2022(?).2 beta
By: zsolt on Tue, 13 December 2022 17:39
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 17:49
|
|
|
Re: 2022(?).2 beta
By: zsolt on Tue, 13 December 2022 18:17
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 18:32
|
|
|
Re: 2022(?).2 beta
By: zsolt on Tue, 13 December 2022 19:01
|
|
|
Re: 2022(?).2 beta
By: mirek on Tue, 13 December 2022 19:12
|
|
|
Re: 2022(?).2 beta
By: zsolt on Tue, 13 December 2022 20:01
|
|
|
Re: 2022(?).2 beta
By: mirek on Wed, 14 December 2022 14:05
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 05:07
|
|
|
Re: 2022(?).2 beta
By: mirek on Sun, 18 December 2022 13:26
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 14:48
|
|
|
Re: 2022(?).2 beta
By: Klugier on Sun, 18 December 2022 15:41
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 18:50
|
|
|
Re: 2022(?).2 beta
By: mirek on Sun, 18 December 2022 19:55
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 20:08
|
|
|
Re: 2022(?).2 beta
By: Klugier on Sun, 18 December 2022 21:54
|
|
|
Re: 2022(?).2 beta
By: zsolt on Sun, 18 December 2022 22:33
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 22:55
|
|
|
Re: 2022(?).2 beta
By: zsolt on Sun, 18 December 2022 23:29
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 19 December 2022 00:41
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 19 December 2022 10:08
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 19 December 2022 18:43
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 19 December 2022 19:10
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 19 December 2022 20:22
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 19 December 2022 23:14
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 19 December 2022 23:35
|
|
|
Re: 2022(?).2 beta
By: Lance on Mon, 19 December 2022 23:54
|
|
|
Re: 2022(?).2 beta
By: Novo on Tue, 20 December 2022 00:19
|
|
|
Re: 2022(?).2 beta
By: Lance on Tue, 20 December 2022 00:48
|
|
|
Re: 2022(?).2 beta
By: Novo on Mon, 19 December 2022 05:36
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 19 December 2022 00:15
|
|
|
Re: 2022(?).2 beta
By: Lance on Sun, 18 December 2022 22:35
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 19 December 2022 00:18
|
|
|
Re: 2022(?).2 beta
By: zsolt on Sun, 18 December 2022 16:08
|
|
|
Re: 2022(?).2 beta
By: pvictor on Wed, 14 December 2022 12:56
|
|
|
Re: 2022(?).2 beta
By: mirek on Wed, 14 December 2022 14:04
|
|
|
Re: 2022(?).2 beta
By: mr_ped on Sun, 18 December 2022 19:46
|
|
|
Re: 2022(?).2 beta
By: mirek on Sun, 18 December 2022 19:53
|
|
|
Re: 2022(?).2 beta
By: mirek on Mon, 19 December 2022 12:20
|
Goto Forum:
Current Time: Mon May 13 23:05:01 CEST 2024
Total time taken to generate the page: 0.02789 seconds
|