Błąd kompilacji „konwersji traci kwalifikatory” w C ++

Natknąłem się na ciekawy problem podczas debugowania dzisiaj typograficznych SWIG. Czy ktoś chce mi wyjaśnić, dlaczego Visual C ++ 2008 zgłasza błąd „Konwersja traci kwalifikatorów” podczas konwersjiourLib::Char * doconst ourLib::Char * &? myślałemType * ->const Type * była trywialna konwersja i (podczas wywoływania funkcji)Lvalue ->Lvalue & także.

EDYCJA: Rozwiązanie, z którym skończyliśmy:

// ourLib::Char is a typedef'ed char on Win32

%typemap(in) const char* (const ourLib::Char* tmp)
{
    if (!bapiLua::LuaTraits<ourLib::Char*>::FromLuaObject(L, $argnum, tmp)) SWIG_fail;
    $1 = const_cast<char *>(tmp);
}

// And in a different source file, already written:
namespace bapiLua {
template<>
struct LuaTraits<ourLib::Char*>
{
    static ourLib::Bool FromLuaObject(lua_State* L, int pos, const ourLib::Char*& o_result);
};
}

Usuwanieconst zconst ourLib::Char * tmp powoduje błąd, który opisałem.

questionAnswers(1)

yourAnswerToTheQuestion