Eh bien, peut-être m'étais-je enthousiasmé un peu vite à propos de l'article donné plus haut par
nouknouk
http://www.codeguru.com/cpp/cpp/cpp_...cle.php/c4143/
La solution ultime proposée par l'auteur, est, si je ne me trompe :
Code:
1 2 3 4 5 6 7 8 9 10 11
| template <typename T>
class MakeFinal
{
private:
~MakeFinal() { };
friend T;
};
class FinalClass : virtual public MakeFinal<FinalClass>
{
}; |
mais en définitive chez moi sous g++ ça ne compile pas :
Code:
1 2 3 4 5
|
example.cpp:6: error: a class-key must be used
when declaring a friend
example.cpp:6: error: friend declaration does not
name a class or function |
:(