[libcxx-dev] Providing custom template specialization for std::optional?
Louis Dionne via libcxx-dev
libcxx-dev at lists.llvm.org
Mon Mar 11 08:34:42 PDT 2019
> On Mar 7, 2019, at 00:39, Eric Fiselier via libcxx-dev <libcxx-dev at lists.llvm.org> wrote:
>
>
>
> On Wed, Mar 6, 2019 at 5:41 PM Владимир Гончаров via libcxx-dev <libcxx-dev at lists.llvm.org <mailto:libcxx-dev at lists.llvm.org>> wrote:
> Hello!
>
> I'm implementing a specialization for std::optional for my program-defined type.
>
> Can you explain what your specialization does differently? And why it's needed?
>
> As I understand [namespace.std], nothing forbids me from doing that.
>
> I agree that you've interpreted the standard correctly. But I think the standard is being too permissive here.
> Implementing a complex component may necessitate knowledge of the internals. `<variant>` is a good example.
>
> I would like to know what other library maintainers think.
I think it is a bug in the Standard that we don't explicitly state which templates are safe to specialize, and prohibit doing so by default. I would not try to do anything special to support this in libc++ and I would instead fix the Standard.
Louis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libcxx-dev/attachments/20190311/46311ded/attachment.html>
More information about the libcxx-dev
mailing list