I’m building on FC4 with GCC 4.1.0, and I get a bunch of “extra

qualification” errors in the C++ code where static functions are

declared inside a class with the class name prefixed… for example,

from gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h, there’s

a class that looks like:

class gri_mmse_fir_interpolator_cc;

float omega() const { return d_omega;}

float gain_mu() const { return d_gain_mu;}

float gain_omega() const { return d_gain_omega;}

void set_gain_mu (float gain_mu) { d_gain_mu = gain_mu; }

void set_gain_omega (float gain_omega) { d_gain_omega = gain_omega; }

void set_mu (float mu) { d_mu = mu; }

void set_omega (float omega) { d_omega = omega; }

protected:

gr_clock_recovery_mm_cc (float omega, float gain_omega, float mu,

float gain_mu);

private:

float d_mu;

float d_omega;

float d_gain_omega;

float d_gain_mu;

gr_complex d_last_sample;

gri_mmse_fir_interpolator_cc *d_interp;

gr_complex gr_clock_recovery_mm_cc::slicer_0deg (gr_complex sample);

gr_complex gr_clock_recovery_mm_cc::slicer_45deg (gr_complex sample);

friend gr_clock_recovery_mm_cc_sptr

gr_make_clock_recovery_mm_cc (float omega, float gain_omega, float

mu, float gain_mu);

};

line 77 and 78 are

gr_complex gr_clock_recovery_mm_cc::slicer_0deg (gr_complex sample);

gr_complex gr_clock_recovery_mm_cc::slicer_45deg (gr_complex sample);

and GCC 4.1 spits out an error for both, because the

gr_clock_recovery_mm_cc:: prefix is apparently an “extra

qualification”. This occurs in various points in the code, and all I

have to do is go in and remove the prefixes, and it compiles fine. Is

there some reason why these files have been left like this, or should

they be changed?