[C++] Compiler-Optimierungen bei Impl-Klassen
Verfasst: 26.01.2014, 11:10
Hi,
ich verstecke gerne gewisse Implementierungs-Details in Klassen. Beispielsweise habe ich eine Klasse AssetManager welches die öffentlichen Methoden zur Verfügung stellt. Davon abgeleitet habe ich eine Klasse AssetManager::Impl, welche die interne Implementierung enthält.
In AssetManager habe ich dann Methoden, die an AssetManager::Impl weiterleiten. Zum Beispiel so:
Ich frage mich nun, ob der Compiler diese Zwischenmethode wegoptimiert und direkt AssetManager::Impl::isAssetLoaded aufruft? Und wenn ja, kann AssetManager::Impl::isAssetLoaded dann zudem noch ge-inlined werden?
Ich würde ja selber nachschauen, aber die Assembler-Listings sind mir mittlerweile zu komplex geworden.
ich verstecke gerne gewisse Implementierungs-Details in Klassen. Beispielsweise habe ich eine Klasse AssetManager welches die öffentlichen Methoden zur Verfügung stellt. Davon abgeleitet habe ich eine Klasse AssetManager::Impl, welche die interne Implementierung enthält.
In AssetManager habe ich dann Methoden, die an AssetManager::Impl weiterleiten. Zum Beispiel so:
Code: Alles auswählen
bool AssetManager::isAssetLoaded(const std::string & rFilePath) const
{
const Impl & rImpl = static_cast<const Impl &>(*this);
return rImpl.isAssetLoaded(rFilePath);
}
inline bool AssetManager::Impl::isAssetLoaded(const std::string & rFilePath) const
{
return irgendwas;
}
Ich würde ja selber nachschauen, aber die Assembler-Listings sind mir mittlerweile zu komplex geworden.