Czy obiekt może znać swoją własną konstelację?

Zdecltype istd::is_const stałość zmiennej można wykryć zewnętrznie.Ale czy jest także możliwe, aby obiekt znał swoją własną konstelację? Użycie powinno być jak:

#include <type_traits>
#include <iostream>
#include <ios>

struct Test
{
    Test() {}

    bool print() const
    {
       // does not work as is explained in https://stackoverflow.com/q/9890218/819272
       return std::is_const<decltype(*this)>::value; // <--- what will work??
    }
};

int main()
{
    Test t;
    const Test s;

    // external constness test
    std::cout << std::boolalpha << std::is_const<decltype(t)>::value << "\n";
    std::cout << std::boolalpha << std::is_const<decltype(s)>::value << "\n";

    // internal constness test
    std::cout << std::boolalpha << t.print() << "\n";
    std::cout << std::boolalpha << s.print() << "\n"; // <--- false??
}

Wyjście włączoneLiveWorkSpace Czy to możliwe?

MOTYWACJA: Chcę być w stanie wykryć, czy stała funkcja składowa jest wywoływana na obiekcie stałym lub pochodzi z obiektu innego niż stały. Obiekt może np. reprezentują pamięć podręczną, a członek widok. Gdyby pamięć podręczna była stała, można przypuszczalnie użyć zoptymalizowanej procedury rysowania, natomiast jeśli dane bazowe nie były stałe, procedura rysowania musiałaby okresowo sprawdzać, czy dane zostały odświeżone.

UWAGA: powiązanepytanie pyta, jak złamać kompilację dla obiektów const, ale nie do końca rozumiem, czy odpowiedź na to sugeruje NIE dla mojego pytania. Jeśli nie, chcę przechwycić stałą w logice do dalszego użycia.

EDYTOWAĆ: jak wskazano @DanielFrey, konstruktor nie jest dobrym miejscem do testowania zgodności. Co ze stałą funkcją składową?

AKTUALIZACJA: Dziękuję wszystkim za poprawienie mojego początkowo złego pytania i dostarczenie różnych części odpowiedzi (źle zdefiniowana konstytucja, przewartościowaniethis, znaczenie kontekstoweconst, z - oczywistym przeciążeniem - oczywistym przeciążeniem, które przeoczyłem, i stałą referencyjną luką aliasingową czającą się w cieniu). Dla mnie to pytanie było Stackoverflow w najlepszym wydaniu. Postanowiłem wybrać odpowiedź @ JonathanWakely, ponieważ pokazała, jak to zdefiniowaćMutable iImmutable zajęcia, które wzmacniają koncepcję konstytucji, aby osiągnąć to, czego chcę, w niezawodny sposób.

questionAnswers(7)

yourAnswerToTheQuestion