Sto provando a riscrivere un codice che ho scritto tempo fa usando alcune buone pratiche C ++. Per raggiungere tale obiettivo sto usando come riferimento Efficace C ++ (1) e convenzione di codifica google (2). Secondo (2) una funzione dovrebbe essere dichiarata in linea se è 10 righe o meno, secondo (1) inoltre il compilatore potrebbe ignorare la direttiva inline, ad esempio quando ci sono loop o ricorsione (solo un esempio è fornito in modo da conosco tutti i casi che verrebbero ignorati dal compilatore).
Diciamo che ho 2 funzioni, la prima è 10 righe, e non c'è chiamata a nessuna altra funzione e nessun riferimento esterno in generale. Il secondo presuppone che siano ancora 10 righe ma ad un certo punto c'è una chiamata al primo
Qualcosa come
Type1 f(Type2 arg) {
//10 lines of self contained code
}
Type3 g(Type4 arg) {
//0 <= n <= 8 lines of code
//g(x);
//9 - n lines of code
}
Vorrei dichiarare il f
in linea, a causa del suggerimento di google (pienamente giustificato) Ma sarei perplesso circa g
quale sarebbe una buona pratica qui? Dichiarerebbe g
come inline ignorato dal compilatore? In caso contrario, posso ancora usufruire dei vantaggi della direttiva inline?