Outils pour utilisateurs

Outils du site


prog:cpp:propagate_const

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
prog:cpp:propagate_const [2025/07/06 18:17] – Précision avec indirect_value rootprog:cpp:propagate_const [2025/07/06 19:06] (Version actuelle) – Fix value_types root
Ligne 195: Ligne 195:
 </code> </code>
  
 +=====value_types=====
 +
 +====Référence====
 +
 +<code cpp>
 +#include <https://raw.githubusercontent.com/jbcoe/value_types/refs/heads/main/polymorphic.h>
 +
 +struct Y {
 +  Y() : m_ptrX(m_X) {};
 +
 +  void f() const {
 +    std::cout << "f (const)\n";
 +    m_ptrX->g();
 +  }
 +
 +  void f() {
 +    std::cout << "f (non-const)\n";
 +    m_ptrX->g();
 +  }
 +
 +  xyz::indirect<X> m_ptrX;
 +  X m_X;
 +};
 +</code>
 +
 +Rendu :
 +
 +<code>
 +f (non-const)
 +g (non-const)
 +f (const)
 +g (const)
 +</code>
 +
 +====Pointeur / allocation dynamique====
 +
 +<code cpp>
 +#include <https://raw.githubusercontent.com/jbcoe/value_types/refs/heads/main/polymorphic.h>
 +
 +struct Y
 +{
 +  Y() : m_ptrX(xyz::polymorphic<X>()) {};
 + 
 +  void f() const {
 +    std::cout << "f (const)\n";
 +    m_ptrX->g();
 +  }
 + 
 +  void f() {
 +    std::cout << "f (non-const)\n";
 +    m_ptrX->g();
 +  }
 + 
 +  xyz::polymorphic<X> m_ptrX;
 +};
 +</code>
 +
 +Rendu :
 +
 +<code>
 +f (non-const)
 +g (non-const)
 +f (const)
 +g (const)
 +</code>
prog/cpp/propagate_const.1751818624.txt.gz · Dernière modification : de root