Ich habe eine Funktion wie (. Sie kümmern sich nicht um durch Bezugnahme temporäre Rückkehr Dies ist nur ein Beispiel, das Problem zu erklären),von „foo <T>“ Konvertieren in „const foo <const T>“ - C++
const foo<const int>& get_const()
{
foo<int> f;
return f;
}
Dies wird natürlich nicht kompilieren. Ich bin auf der Suche nach einer Möglichkeit, sicherzustellen, dass Anrufer die T
von foo
nicht ändern. Wie kann ich das sicherstellen?
Ich habe das ähnliche Verhalten für boost::shared_ptr
gesehen. shared_ptr<T>
ist umwandelbar in const shared_ptr<const T>
. Ich konnte nicht herausfinden, wie es das macht.
Jede Hilfe wäre großartig.
Sie versuchen wahrscheinlich sicherzustellen, dass Anrufer das * f * von foo nicht ändern. –