C ++ шаблон и встроенный
Когда я пишу простой (не шаблонный) класс, если реализация функции предоставляется «прямо на месте», она автоматически обрабатывается какinline
.
class A {
void InlinedFunction() { int a = 0; }
// ^^^^ the same as 'inline void InlinedFunction'
}
Как насчет этого правила, когда речь идет о классах на основе шаблонов?
template <typename T> class B {
void DontKnowFunction() { T a = 0; }
// Will this function be treated as inline when the compiler
// instantiates the template?
};
Кроме того, как этоinline
правило применяется к не вложенным шаблонным функциям, таким как
template <typename T> void B::DontKnowFunction() { T a = 0; }
template <typename T> inline void B::DontKnowFunction() { T a = 0; }
Что бы произошло в первом и во втором случае здесь?
Спасибо.