En el ámbito de C, declarar estructuras o clases con plantilla como amigas puede presentar un obstáculo relacionado con la sintaxis. Para lograr esto, considere el siguiente enfoque:
templatestruct foo { template friend class foo; private: // ... };
Esta sintaxis parece compilarse correctamente. Sin embargo, declara todas las instancias de plantilla de foo como amigas entre sí, independientemente del parámetro de plantilla que tomen. Esto puede o no alinearse con su caso de uso previsto.
Si necesita limitar la amistad solo a instancias específicas, puede lograrlo usando esta sintaxis:
templatestruct foo { template friend struct foo ; private: // ... };
Desafortunadamente, esta sintaxis no permite una declaración genérica que incluya todas las instancias posibles de foo.
Por lo tanto, si su objetivo es establecer amistad entre todas las instancias de plantilla de foo, el segundo enfoque que utiliza la clase amiga foo es lo más cercano que puede llegar, dadas las limitaciones de la sintaxis de C.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3