C++ Weekly - Ep 255 - C++11-17 Features You Still Cannot Use in 2021

preview_player
Показать описание
☟☟ Awesome T-Shirts! Sponsors! Books! ☟☟

T-SHIRTS AVAILABLE!

WANT MORE JASON?

SUPPORT THE CHANNEL

GET INVOLVED

JASON'S BOOKS

► C++23 Best Practices

► C++ Best Practices

JASON'S PUZZLE BOOKS

► Object Lifetime Puzzlers Book 1

► Object Lifetime Puzzlers Book 2

► Object Lifetime Puzzlers Book 3

► Copy and Reference Puzzlers Book 1

► Copy and Reference Puzzlers Book 2

► Copy and Reference Puzzlers Book 3

► OpCode Puzzlers Book 1


RECOMMENDED BOOKS

AWESOME PROJECTS

O'Reilly VIDEOS

Рекомендации по теме
Комментарии
Автор

Looks like garbage collection wasn't being used, so in 2023 the feature will be ... garbage-collected. * ba-dum-tss *

X_Baron
Автор

Aligned alloc could not be implemented in Visual Studio without breaking ABI compatibility (VS 2015, 2017 and 2019 are compatible with each other to some extent). The problem is that according to The Standard both normal unaligned and aligned allocation needs to be freed by normal free. But normal free can not distinguish unaligned and aligned allocation and thus act accordingly. The workaround is to use Miscosoft specific aligned alloc and aligned free functions.

MarekKnapek
Автор

I am looking forward to the episode on garbage collection.

ailijic
Автор

I think the floating-point round-trip requirement for to_chars/from_chars is the sticking point.

headlibrarian
Автор

I'm curious to why the mathematical special functions are still not implemented in Clang. Is it just not a priority for Clang?

rolfvdhulst
Автор

Export was a C++98 that only Comeau compiler implement.
This feature was removed in C++11.

VamoAComeLaPapa
Автор

Embarcaderos standard library is NOT based on clang. It's based on dinkumware. As you can see it shares compiler support with clang, but library support with msvc.
They actually just use some parts from clang/llvm for patchy exception handling, which is hilariously broken because of at least 4 different exception types.

eLBehmo
Автор

IIRC, Apple Clang is currently clang 10 - which is the version before libc++ got support for shared_ptr array support.

from_chars is one I miss... msvc is the first compiler I use (I go to gcc/clang secondarily) and I’ve forgotten about from_chars lack of availability a couple of times... Sucks... I’ve written a wrapper that returns std: optional<some-numeric-type> (because that’s the interface I like) and has implementations for gcc and clang that don’t use from_chars.

Filesystem also needs a link library with gcc8, iirc. At least that just affects the build system!

StuartDootson
Автор

export templates of C++98, removed in C++11 though

andersdalvander
Автор

Elementary string conversion not work on mac clang - it compiles, but can not link

nmmm
Автор

I'll be very much looking forward on your take on Hardware interference size in a video :)

Khunvyel
Автор

why is elementary string conversion hard to implement?

bernsteinpolynomial
Автор

we should add that elementary string conversion is really good in msvc, it partly uses the Ryu algo for floating point
the only sad thing is that is not templated to the character type

ChaotikmindSrc
Автор

Could somebody point me to the Microsoft talks about to_char/from_char? Really interested in why those functions are so hard to implement

petermuller
Автор

Garbage collection from C++11 always stood out to me. It's like someone wrote the paper really hoping it would get added and then none of the compiler vendors bothered with it.

A note on apple clang: You say it tends to mostly stay up to date with clang... but it took them well over a year after normal clang got support to get c++17 things at all and have proper std::filesystem (instead of At some point they even had the proper filesystem headers, but no ability to actually build it as the required library of the implementation was missing. Then in the next release they removed that header again. Then about half a year later it was finally added proper. So to summerize... it's probably correct. They're behind. Apple likes to focus on Swift and Objective C.

In terms of hardware interference size, I feel like the only reason Visual Studio has it is because their only targets are PC x86, ARM and Xbox. That makes it a whole lot easier than having to implement it for all the architectures GCC and Clang have.

ruadeil_zabelin
Автор

std::filesystem is problematic for devices that have specific file systems. For example, it is not supported on Android.

AlexCohnAtNetvision
Автор

Could you make videos about POSIX in the standard lib please? It matters, because it is used in many code bases, because it provides fundamental functions. Also please talk about the correct way to use POSIX with the standard headers.

cmdlp
Автор

Why c++ implimenters are decreased in number.

sanjaygatne
Автор

It feels like an issue for some of these missing features is the relatively rapid pace c++ has been changing compared to pre c++11, a slew of new/updated features every 3 years seems like it hampers compiler developers to getting to every feature.

LiquidWater
Автор

Embarcaderos std::function implementation is still unusable. (but is easily fixable)

eLBehmo