`className(expr)` should give the dynamic type
className(expr) is just a pre-C++11 type-deduction helper forwarding to
className<Type>(). It can't even deal with rvalue arguments.
Getting a demangled dynamic type from
className(expr) would be useful e.g. here: dune-istl!284 (comment 55160)
className(expr) to return the dynamic would mean:
expris an lvalue and the static type of
report dynamic type rather than static type
expris an lvalue and "not virtual":
expris an rvalue:
(optional) report dynamic type rather than failing to compile
Additionally, exposing the demangling facility would be helpful.