Anterior
 Volver
 Siguiente

 
Asunto: [CORBA-Comp] withdraw() ->gracias y const ->más dudas.
Fecha: Tue May 30 20:53:01 2000
De: "Emilio Hernández Martín" <inkyeto@teleline.es>

 
    Hola.

* WITHDRAW ().

> Si has declarado
>
> ::CosTrading::Register_var reg = ...;
>
> Tienes que utilizar reg -> withdraw("algo").
>

OK. Muchísimas gracias.

******************************************

* CONST.

>
> La forma de solucionarlo es la siguiente:
>
> - supongamos que la fn es const char*f(void);
>
>
> char *cad = const_cast<char*>(f());
>

-------------------------------------------------------------

>
> para quitar el warning es hacer un cast explícito a (char*):
>
> from_string((char*)loquesea,...);
>

--------------------------------------------------------------

    Con cualquiera de las 2 soluciones sólo consigo que me cambie el texto
del warning, que ahora pasa a ser:

warning: conversion to 'char *' from 'const char *' discards const

    De todas formas, no logró entenderlo porque la función en cuestión a la
que se llama no devuelve exactamente un 'const char *' sino una cadena
'String' (un tipo de cadena que se ha incluido previamente con #include
<String.h>). Así, la primera solución pasa a ser (supongo):

char *cad = const_cast<String>(f());

pero como digo, esto sólo hace que me aparezca el texto de arriba en el
warning. El 'const' aparece en otra llamada que hay dentro de esta función.
La cosa es del estilo de:

1* Llamada a la función (dónde me pone el warning):
...
seq[0].value <<= CORBA::Any::from_string( GetAgName(), 0 );
...

2* Función GetAgName.

String GetAgName (void)
{
    String name;
    MyModel.Compose(name);
    return name;
}

3* Función 'Compose' (que es donde está el 'const'):

void Compose (String &cmp_name) const
{
    String Name = "Nombre";
    String Domain = "Dominio";
    cmp_name = Name + '@' + Domain;
}

    Las funciones GetAgName y Compose ya existen y no "debería" tocarlas.
¿Cómo podría solucionar lo del warning en el punto 1 de arriba?

    Muchísimas gracias por la ayuda.

    Emilio.



--------------------------------------------------------------------------
Esta es la lista de discusión de CORBA y Componentes Software (corba-comp)
--------------------------------------------------------------------------
Suscripcion: Envie un correo a mailto:Majordomo@ditec.um.es?body=subscribe%20corba-comp
Eliminar su suscripcion: mailto:Majordomo@ditec.um.es?body=unsubscribe%20corba-comp
Informacion de la lista: mailto:Majordomo@ditec.um.es?body=info%20corba-comp
Problemas: mailto:corba-comp-owner@ditec.um.es
Indices de la lista: http://www.ditec.um.es/~dsevilla/corba/
--------------------------------------------------------------------------

 Anterior
 Volver
 Siguiente