2010-11-08 4 views

Répondre

3

Pourquoi le compilateur devrait-il savoir que c'est OK? Je pense que vous voulez les éléments suivants à la place

void *y = x; 
x = static_cast<const double**>(y); // casting back needs static_cast or c-style cast 

A void** ne possède pas les propriétés particulières que void* a (celle d'être un pointeur de données universel).

+0

@litb, êtes-vous sûr d'avoir la constance, n'est-ce pas? – avakar

+0

@avakar Oh, je me suis trompé :) Fixé, merci! –

+1

+1 pour la dernière note: Je me souviens avoir lu quelque part que 'const void **' ne devrait pas être utilisé comme un pointeur générique pour les types 'const T **', mais malheureusement ce n'est pas un terme de recherche très google. –

0

Pourquoi se plaignent-ils?

Parce que ce n'est pas OK.

Il y a une FAQ expliquant pourquoi mais je n'arrive pas à le trouver maintenant. Votre distribution C-Style est résolue en reinterpret_cast, ce qui indique au compilateur d'ignorer les types.