public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* FW: compile fails with g++ 3.4.3
@ 2005-06-17 20:57 Kolev, Nik
  2005-06-17 21:24 ` corey taylor
  0 siblings, 1 reply; 4+ messages in thread
From: Kolev, Nik @ 2005-06-17 20:57 UTC (permalink / raw)
  To: gcc-help

Hi,

I am trying to build a shared library using g++ 3.4.3
Up until now I was successfully building with 3.2.3 version of the compiler.

Since I do not have much time fixing the code to please 3.4.3 is there a way to tell 3.4.3 (via an option) to ignore certain "flaws" in the code? The first error I am getting is:

SiteClusterFinder.h:62: error: type `std::list<SiteClusterFinder<T>::E, std::allocator<SiteClusterFinder<T>::E> >' is not derived from type `SiteClusterFinder<T>'
SiteClusterFinder.h:62: error: ISO C++ forbids declaration of `iterator' with no type

thanks,
nik

^ permalink raw reply	[flat|nested] 4+ messages in thread
* RE: FW: compile fails with g++ 3.4.3
@ 2005-06-17 22:19 Kolev, Nik
  2005-06-18  2:46 ` corey taylor
  0 siblings, 1 reply; 4+ messages in thread
From: Kolev, Nik @ 2005-06-17 22:19 UTC (permalink / raw)
  To: gcc-help

I have not written the code and cannot answer specific questions - just building it as a shared library that I then call from within a java app using JNI. Here's how the template class is set up:

template <class T>
class SiteClusterFinder
{
private:

    // Entry 
    class E
    {
    public:
        // Constructor
        E(double _x, double _y, T _userData, SiteClusterFinder *finder)
            : x(_x), y(_y), userData(_userData), finder(finder) 
        {}

        // Less operator
        bool operator < (const E& e) const
        {
            if(finder->sortByX)
                return (x < e.x); 
            else
                return (y < e.y);
        }
        
        // x and y coordinates
        double x, y;

        // User data (keys)
        T userData;

        // Cluster finder
        SiteClusterFinder *finder;
    };

    typedef std::list<E> L;
    typedef L::iterator I;   // The error happens here
    typedef std::list<L> LL;
    typedef LL::iterator II;

public:

    friend class E;

    /**
     * Adds point to a cluster finder
     *
     * @param _x x coordinate of a new point
     * @param _y y coordinate of a new point
     * @param _userData data that identify a point to a user
     * @param _finder site cluster finder
     */
    void add(double _x, double _y, T _userData, SiteClusterFinder *_finder) 
    { 
        data.push_back(E(_x, _y, _userData, _finder)); 
    }

    /**
     * Removes all points from a cluster finder
     */
    void clear() { data.clear(); }

private:
    
    // Indicates how sorting has to be done in E
    bool sortByX;

    // Storage of points
    L data;

    //
    // More methods/members
    //
};

#endif


>How did you declare the iterator?
>
>corey

On 6/17/05, Kolev, Nik <NKolev@trueposition.com> wrote:
> Hi,
> 
> I am trying to build a shared library using g++ 3.4.3
> Up until now I was successfully building with 3.2.3 version of the compiler.
> 
> Since I do not have much time fixing the code to please 3.4.3 is there a way to tell 3.4.3 (via an option) to ignore certain "flaws" in the code? The first error I am getting is:
> 
> SiteClusterFinder.h:62: error: type `std::list<SiteClusterFinder<T>::E, std::allocator<SiteClusterFinder<T>::E> >' is not derived from type `SiteClusterFinder<T>'
> SiteClusterFinder.h:62: error: ISO C++ forbids declaration of `iterator' with no type
> 
> thanks,
> nik
> 
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-06-18  2:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-17 20:57 FW: compile fails with g++ 3.4.3 Kolev, Nik
2005-06-17 21:24 ` corey taylor
2005-06-17 22:19 Kolev, Nik
2005-06-18  2:46 ` corey taylor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).