Skip to content

Undefined behavior #315

@IvanArkhipov1999

Description

@IvanArkhipov1999

Hi there!

After adding magic_enum to my project I got unexpected build errors on some platforms in ci. But on some platforms build was successful.

I started looking into it and found out what was going on. In magic_enum std::get is extended https://github.com/Neargye/magic_enum/blob/master/include/magic_enum/magic_enum_containers.hpp#L1130. But с++ documentation states, that "It is undefined behavior to declare a full specialization of any standard library function template." (https://en.cppreference.com/w/cpp/language/extending_std section "Function templates and member functions of templates").

I suggest to define get for magic_enum in a separate namespace. Maybe you have other suggestions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions