j'avais la pièce de code suivant (simplifié pour cette question):pointeur à des données membres-de-données-membre
struct StyleInfo
{
int width;
int height;
};
typedef int (StyleInfo::*StyleInfoMember);
void AddStyleInfoMembers(std::vector<StyleInfoMember>& members)
{
members.push_back(&StyleInfo::width);
members.push_back(&StyleInfo::height);
}
Maintenant, nous avons dû restructurer cela un peu, et nous avons quelque chose comme ceci:
struct Rectangle
{
int width;
int height;
};
struct StyleInfo
{
Rectangle size;
};
typedef int (StyleInfo::*StyleInfoMember);
void AddStyleInfoMembers(std::vector<StyleInfoMember>& members)
{
members.push_back(&StyleInfo::size::width);
members.push_back(&StyleInfo::size::height);
}
Si tout cela ressemble à une chose stupide à faire, ou si vous vous sentez qu'il ya une bonne occasion d'appliquer BOOST ici pour une raison quelconque, je dois vous avertir que je vraiment simplifié le tout à le problème à résoudre:
C3083 d'erreur: « taille »: le symbole à gauche d'un « :: » doit être un type
Le point que je suis en train de faire est que je ne sais pas ce que la syntaxe correcte est à utiliser ici. Il se peut que "StyleInfo" ne soit pas le bon type d'adresse pour commencer, mais dans mon projet je peux réparer ce genre de choses (il y a tout un cadre). Je ne sais tout simplement pas comment désigner ce membre-dans-un-membre.
Tryout commentaire # 1 –