O que significa “usar ODR” alguma coisa?

Isso só surgiu no contexto deoutra pergunta.

Aparentemente, as funções-membro nos modelos de classe são instanciadas apenas se forem utilizadas pelo ODR. Alguém poderia explicar o que exatamente isso significa? oArtigo da wikipedia sobre Regra de Uma Definição (ODR) não menciona "ODR-use".

No entanto, o padrão define como

Uma variável cujo nome aparece como uma expressão potencialmente avaliada éodr-used a menos que seja um objeto que satisfaça os requisitos para aparecer em uma expressão constante (5.19) e a conversão lvalue para rvalue (4.1) seja imediatamente aplicada.

em [basic.def.odr].

Edit: Aparentemente, esta é a parte errada e todo o parágrafo contém várias definições para coisas diferentes. Isso pode ser o relevante para a função de membro de modelo de classe:

Uma função não sobrecarregada cujo nome aparece como uma expressão potencialmente avaliada ou um membro de um conjunto de funções candidatas, se selecionada por resolução de sobrecarga quando referida a partir de uma expressão potencialmente avaliada, é utilizada, a menos que seja um virtual puro função e seu nome não é explicitamente qualificado.

No entanto, não entendo como essa regra funciona em várias unidades de compilação? Todas as funções de membro são instanciadas se eu instanciar explicitamente um modelo de classe?

questionAnswers(2)

yourAnswerToTheQuestion