Home » Community » U++ community news and announcements » 2022(?).2 beta
Re: 2022(?).2 beta [message #59349 is a reply to message #59347] |
Sun, 18 December 2022 18:50 |
Lance
Messages: 527 Registered: March 2007
|
Contributor |
|
|
Klugier wrote on Sun, 18 December 2022 09:41Hello Lance,
Quick question, what about replacing [=] with [this]. Does it produce warning with C++20? It compiles fine with C++14 and I think in most cases we can replace it. We are using [=] to capture local variables very really, however this can be overcome by explicit argument capture.
The solution with CAPTURETHISBYVALUE is ugly and very impractical especially for U++ maintainers
I agree that we should be compatible with C++20 as much as we can. On the other hand, I also think it is a good moment to change default standard from c++14 to c++17. c++14 is 8/9 years old standard and on most of currently supported system compilers with c++17 support are present. For example I like auto [x, error] = GetTuple() that can not be used in c++14 word. Very useful feature when you want to back-propagate error without using exceptions. I remember, we discussed this transition some time ago, but maybe it is good to discuss it one more time
Klugier
Hi Klugier:
Unfortunately it doesn't work. In a lot of occassions [=] captures more than just [this].
I will try my approach and report the result.
Regards,
Lance
PS:
It works perfectly in GCC/CLANG on Ubuntu.
Here is what I did:
1. Insert the definition of CAP_BY_VALUE_WITH_THIS after #include <utility>
#if __cplusplus > 201703L
# define CAP_BY_VALUE_WITH_THIS = ,this
#else
# define CAP_BY_VALUE_WITH_THIS =
#endif
2. Do a Replace in Files..., replace all occurrences of [=] with CAP_BY_VALUE_WITH_THIS, for all files under the folder uppsrc;
3. Compile some examples, eg. <Examples/Color>, fix all errors due to wrongful replacement in step 2. I believe there are 3-4 such occurrences.
4. Compile TheIDE, 2 more errors pop up. In <ide/Builders/Install.cpp>, replace
auto Fix = [CAP_BY_VALUE_WITH_THIS](const char *s) {
with
auto Fix = [=](const char *s) {
And in <ide/Designers/HexView.cpp>, Ln 98, replace
RegisterGlobalSerialize("FileHexViewPos", [CAP_BY_VALUE_WITH_THIS](Stream& s) {
with
RegisterGlobalSerialize("FileHexViewPos", [=](Stream& s) {
and ide is ready to be built. Of course I fix problems as GCC complains to me. As I did nothing in between, any errors that stopped compiling would mean I need to replace [CAP_BY_VALUE_WITH_THIS] with [=] (where there is no `this` at all).
BR,
Lance
[Updated on: Sun, 18 December 2022 20:21] 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: Tue May 14 07:44:44 CEST 2024
Total time taken to generate the page: 0.02763 seconds
|