JANE FRYER on the Lionesses' victory: With a hop and a skip and a naughty smirk, Chloe Kelly steps up to save the day!
Furious locals' in deprived Hampshire town say Home Office's 'secret' plan to move migrants into £250,000 flats will be the final nail in the coffin of their 'Zombieland' High Street
Alex Jones reveals she was completely unaware about complaints made against The One Show co-host Jermaine Jenas
Astronomers Use Black Holes to Pinpoint Earth's Location. But are Phones and Wifi Blocking the View?
Read more of this story at Slashdot.
Intern did exactly what he was told and turned off the wrong server
Who, Me? Returning to work on Monday morning can feel like a mistake, which is why The Register welcomes readers back to their desks with a fresh instalment of Who, Me? It's the reader-contributed column in which we tell your tales of making a mess at work, and somehow surviving.…
This is the surprising positive side-effect of Mounjaro that's transforming users' lives - and why experts are now calling for slim people to get the drug
I was deeply shocked by my tenant's bizarre act after she moved out - yet she's calling ME dramatic
European holiday hotspot loved by Brits issues strict rules for tourists - with huge fines if you break them
Learner drivers forced to wait more than five months to book their driving tests
Four killed in 'mass shooting' at food market in Bangkok
I'm a spinal doctor - here are the simple daily habits I follow to stay back-pain free
White House in 'full-bore panic mode' over Epstein files and FBI 'breaking at the seams'
Travellers invade seaside town: Residents fury a amid reports of fighting, rubbish dumping and dirty nappies thrown in the sea
'Wedding from hell' subjected guests to screaming children, a cash bar charging for WATER and food containing flies - leaving one attendee 'violently sick'
Sarah Ferguson's chic colour combo is everywhere this season - shop royal-approved cape dresses and mini bags ideal for events
Now shut migrant protest hotel: As demonstrators clash again in Epping, Tories demand that Labour listen to local concerns and move asylum seekers
Bitter Joey Barton takes ANOTHER aim at women's football after Lionesses' incredible win, ranting 'Don't ever ask for equal pay again' before telling Keir Starmer to 'do one' after PM posts congratulations
Grumpy bishop in dressing gown demands choir get out of his church: 'You are in my house and this is a terrible racket... Leave now!'
Country star causes outrage after singing for women to 'give up rights' and 'take a slap' in controversial talk show appearance
CodeSOD: An Exert Operation
The Standard Template Library for C++ is… interesting. A generic set of data structures and algorithms was a pretty potent idea. In practice, early implementations left a lot to be desired. Because the STL is a core part of C++ at this point, and widely used, it also means that it's slow to change, and each change needs to go through a long approval process.
Which is why the STL didn't have a std::map::containsfunction until the C++20 standard. There were other options. For example, one could usestd::map::count, to count how many times a key appear. Or you could use std::map::findto search for a key. One argument against adding astd::map::containsfunction is thatstd::map::count basically does the same job and has the same performance.
None of this stopped people from adding their own. Which brings us to Gaetan's submission. Absent a std::map::contains method, someone wrote a whole slew of fieldExists methods, where field is one of many possible keys they might expect in the map.
bool DataManager::thingyExists (string name) { THINGY* l_pTHINGY = (*m_pTHINGY)[name]; if(l_pTHINGY == NULL) { m_pTHINGY->erase(name); return false; } else { return true; } return false; }I've head of upsert operations- an update and insert as the same operation, but this is the first exert- an existence check and an insert in the same operation.
"thingy" here is anonymization. The DataManager contained several of these methods, which did the same thing, but checked a different member variable. Other classes, similar to DataManager had their own implementations. In truth, the original developer did a lot of "it's a class, but everything inside of it is stored in a map, that's more flexible!"
In any case, this code starts by using the [] accessor on a member variable m_pTHINGY. This operator returns a reference to what's stored at that key, or if the key doesn't exist inserts a default-constructed instance of whatever the map contains.
What the map contains, in this case, is a pointer to a THINGY, so the default construction of a pointer would be null- and that's what they check. If the value is null, then we erase the key we just inserted and return false. Otherwise, we return true. Otherotherwise, we return false.
As a fun bonus, if someone intentionally stored a null in the map, this will think the key doesn't exist and as a side effect, remove it.
Gaetan writes:
What bugs me most is the final, useless return.
I'll be honest, what bugs me most is the Hungarian notation on local variables. But I'm long established as a Hungarian notation hater.
This code at least works, which compared to some bad C++, puts it on a pretty high level of quality. And it even has some upshots, according to Gaetan:
On the bright side: I have obtained easy performance boosts by performing that kind of cleanup lately in that particular codebase.
[Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.