Outils pour utilisateurs

Outils du site


lang:cpp:variable

Ceci est une ancienne révision du document !


Pointeur sur la méthode d'une classe

// La classe
class Classe
{
public:
  // Pas ici.
  const Classe* function(size_t i) const
  { return this; }
  // Ici.
  const Classe* function2(size_t i) const
  { return this; }
};
 
int main()
{
  // Le pointeur de nom ptr.
  const Classe* (Classe::*ptr)(size_t i) const = &Classe::function2;
  Classe C;
  (C.*ptr)(2);
}

Connaître le type d'une variable auto à la compilation

Cela se fait en lisant le message d'erreur à la compilation.

template<class Type> struct S;

int main() {
   auto x = ...;
   S<decltype(x)>();
}

Message d'erreur possible (le type est le template de la structure S) :

utilisation du type non défini 'S<const std::list<unsigned char> &>'

Retrieving the type of auto in C++11 without executing the program Archive du 26/06/2014 le 18/12/2019

Pointer vers une classe template depuis une classe sans template

Il faut mettre une interface commune sans template à la classe template.

struct BaseExample {
    virtual void do_stuff() = 0;
    virtual ~BaseExample() {}
};
 
template <typename T>
struct Example : BaseExample { ... };
 
// ..
BaseExample *obj;

How can I declare a template pointer without knowing the type? Archive du 21/11/2011 le 18/12/2019

lang/cpp/variable.1576706331.txt.gz · Dernière modification : 2019/12/18 22:58 de root