HackerTrans
TopNewTrendsCommentsPastAskShowJobs

martijntje

no profile record

comments

martijntje
·2 tahun yang lalu·discuss
If I read that paper correctly, that's only valid if the object can be constructed without code being run - i.e. a trivially constructible type.

Since there is no limitation on the no_destroy type, you can create any type with it, including those which have a non-trivial constructor. Of course, you could use a concept to restrain it to only trivially constructible types, or you could omit the launder in an if constexpr branch and still be compliant.
martijntje
·2 tahun yang lalu·discuss
It's interesting to see that the complexity of c++ is so great that even the code in standards proposals contains undefined behaviour. The no_destroy class triggers UB when .get() is called, because it fails to launder the returned pointer. This is required since c++17.
martijntje
·2 tahun yang lalu·discuss
If you don't care about watermarks, you can try out Resolume for free indefinitely.