2011-01-01 3 views
0

Gibt es Leistungsüberlegungen beim Verschieben von Memberfunktionen einer Klasse, die nur von einer anderen Memberfunktion dieser Klasse verwendet werden, und sie zu lokalen Funktionen am Anfang der Funktion machen, von der sie stattdessen verwendet werden?Leistungsüberlegungen beim Verschieben von Elementfunktionen, die nur von einer anderen Elementfunktion verwendet werden und sie zu lokalen Funktionen machen?

http://www.flipcode.com/archives/Local_Functions_In_C.shtml

Antwort

2

Nein, gibt es nicht. Es ist nur ein normaler Funktionsaufruf.

Es ist erwähnenswert, dass Sie nicht lokale Strukturen oder Klassen als Vorlage Argumente verwenden können, also, wenn Sie sie für STL Komparatoren verwenden dann dachten vergessen :)

+1

aber Sie können in C++ 11 kann‘ t du? Sonst wären Lambdas nutzlos. – Yttrill

+0

@Yttrill, Warum würde Lambda so nutzlos machen? Lambdas sind ein separates Konzept als Funktionsobjekte, und obwohl sie als syntaktischer Zucker für Funktionsobjekte implementiert sind, werden sie separat behandelt, soweit es den Standard betrifft (es gibt also keine Regel, dass Lambdas nicht als Vorlagenargumente verwendet werden). –

Verwandte Themen