-- Moved from [aspgerman] to [aspdecoffeehouse] by [EMAIL PROTECTED] 
<[EMAIL PROTECTED]> --

Hallo zusammen,

ich habe in diesem Buch das Sample
ausprobiert das auf seiten (engl.
version) 683 beginnt und komme
leider nicht weiter. Es geht da um
Komponente in C++ fuer ASP.
Das ganze sollte folgendermasen
vorsichgehen das in der Methode
CTableStorage::sort die klasse
doCompare aufgerufern wird um das
STL (MAP) zu sortieren.

Beim kompilieren erhalte ich dann
folgenden error:

C:\tbl\TableStorage.cpp(163) :
error C2660: 'sort' : function does
not take 3 parameters

Da hat er ja nicht ganz unrecht,
aber das bsp. sollte ja mit einem
Functions Object laufen da muss ich
den das object mitgeben.

class doCompare : public
binary_function <const
INDEX_FIELD_MAP & , const
INDEX_FIELD_MAP & , bool>
{
        public:
                doCompare(int column, short
direction) : m_column(column),
m_direction(direction){};

                bool operator () ( const
INDEX_FIELD_MAP & x, const
INDEX_FIELD_MAP & y ){
                        bool answer = false;
                        INDEX_FIELD_MAP ::const_iterator
valueIterX = x.find(m_column);
                        INDEX_FIELD_MAP ::const_iterator
valueIterY = y.find(m_column);

                        if (    ((m_direction > 0) && (
(*valueIterX).second) <
((*valueIterY).second) ) ||
                                                ((m_direction == 0 ) && (
(*valueIterX).second) >
((*valueIterY).second)) ){

                                        answer = true;
                                }
                        return answer;
                }; // end operator


        private:
                int m_column;
                short m_direction;
};

STDMETHODIMP
CTableStorage::sort(BSTR
columnName, short direction)
{
        // TODO: Add your implementation
code here
        HRESULT hResult = S_OK;
        COLUMN_INDEX_MAP::iterator
mapIter;

        mapIter =
m_columnIndexMap.find(columnName);

        if ( mapIter !=
m_columnIndexMap.end() )
        {
                doCompare compareFunc(
(*mapIter).second , direction );
                sort( m_rows.begin(),
m_rows.end(), compareFunc );            //
LINE 163:
        }
        else{

                hResult = E_INVALIDARG;
        }
        return hResult;
}

Regards,
Roni Schuetz

| [aspdecoffeehouse] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp

Antwort per Email an