class Window
{
public:
Window(UINT newID = 0): mID(newID) {}
UINT GetID() const { return mID; }
private:
UINT mID;
};
void ShowWindowUnary(const Window& win);
int main()
{
// create and add elements to a list of pointers to Window objects
Window* pWin;
list<Window> winList;
UINT winID;
for (winID = 0; winID < 5; ++winID)
{
pWin = new Window(winID);
winList.push_back(*pWin);
}
pWin = 0;
// Show each window in the list - these are ok.
cout << "ShowWindowUnary():\n";
for_each(winList.begin(), winList.end(), ShowWindowUnary);
cout << "\nPointer to ShowWindowUnary()\n";
for_each(winList.begin(), winList.end(), &ShowWindowUnary);