On Wed, Jun 01, 2011 at 08:45:56AM -0700, Richard Henderson wrote:
On 06/01/2011 08:35 AM, Eduard - Gabriel Munteanu wrote:
Maybe it's not nice, but you're missing the fact upcasting gives you some type safety. With opaques you have none.
Lol. Do you understand what container_of does? This is not dynamic_cast<> with RTTI.
You can put any type name in there that you like, so long as it has a field name to match. The type of the field you give doesn't even have to match the type of the pointer that you pass in.
Uh, if that's true, that's a bug in the container_of implementation. The ccan container_of implementation, for example, certainly does check that the given field has type matching the pointer.