¿Qué significa "usar ODR" algo?

Esto acaba de surgir en el contexto deotra pregunta.

Aparentemente, las funciones de los miembros en las plantillas de clase solo se crean instancias si se usan con ODR. ¿Podría alguien explicar qué significa exactamente eso? losArtículo de wikipedia sobre una regla de definición (ODR) no mencionaUso de la ODR".

Sin embargo, la norma lo define como

Una variable cuyo nombre aparece como una expresión potencialmente evaluada esodr-used a menos que sea un objeto que cumpla con los requisitos para aparecer en una expresión constante (5.19) y se aplique inmediatamente la conversión de valor-a-valor (4.1).

en [basic.def.odr].

Edición: Aparentemente, esta es la parte incorrecta y todo el párrafo contiene múltiples definiciones para diferentes cosas. Este podría ser el relevante para la función miembro de la plantilla de clase:

Una función no sobrecargada cuyo nombre aparece como una expresión potencialmente evaluada o un miembro de un conjunto de funciones candidatas, si se selecciona por resolución de sobrecarga cuando se hace referencia desde una expresión potencialmente evaluada, se usa a menudo, a menos que sea una virtual pura La función y su nombre no están explícitamente calificados.

Sin embargo, no entiendo, ¿cómo funciona esta regla en varias unidades de compilación? ¿Se crea una instancia de todas las funciones de miembro si se crea una instancia explícita de una plantilla de clase?

Respuestas a la pregunta(2)

Su respuesta a la pregunta