¿Hay alguna manera de saber si un objeto es un objeto constante u objeto regular, por ejemplo, considere la siguiente claseobjeto constante y constructor const
class String
{
String(const char* str);
};
si el usuario crear un objeto constante de String
entonces no hay razón para copiar la cadena nativa pasada y eso porque no hará ninguna manipulación sobre él, lo único que hará es obtener el tamaño de cadena, búsqueda de cadenas y otras funciones que no cambiarán la cadena.
No hay forma de saberlo. De hecho, 'const' solo se aplica una vez que el objeto se inicializa (el constructor finaliza) y se detiene una vez que se ingresa el destructor. – GManNickG