C++ Logo


Advanced search

Subject: [ub] type punning through congruent base class?
From: Fabio Fracassi (f.fracassi_at_[hidden])
Date: 2014-01-06 03:26:58

Hello UB-Experts,
as far as I can see the following (static_cast) is UB:
struct B {
  int i;
struct D : B {
  void foo() { /* access B::i */ }
B b;
because of [expr.static.cast] clause 11
first question: is my assessment of the situation correct or is this use legal?
if it is not (legal): could we make it legal or would we run afoul of the aliasing rules?
best regards

SG12 list run by herb.sutter at gmail.com