https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111803

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note clang also rejects this code for the same reason as GCC.

Here is a reduced version which shows the difference between ICC/MSVC and
GCC/clang:
```
struct A
{
  int data;
};
struct B : A{};

struct Container1
{
  template<typename DataType>
  void print(DataType B::*member);
};

void setup1(Container1& container)
{
  container.print(&A::data); // BROKEN IN GCC!
}
```

Basically MSVC/ICC can cast between `float B::*` and `float A::*` ...

Reply via email to