return value, not const reference, if return type is POD or ptr

returning reference to POD types can be in fact slower than returning value.
master
Andrzej Rybczak 17 years ago
parent 5e29d251c3
commit d50dcac5a2
  1. 12
      src/screen.h
  2. 4
      src/window.cpp
  3. 4
      src/window.h

@ -33,7 +33,7 @@ class BasicScreen
BasicScreen() : hasToBeResized(0) { }
virtual ~BasicScreen() { }
virtual void *&Cmp() = 0;
virtual void *Cmp() = 0;
virtual void Init() = 0;
virtual void SwitchTo() = 0;
@ -69,9 +69,9 @@ template <class WindowType> class Screen : public BasicScreen
Screen() : w(0) { }
virtual ~Screen() { }
virtual void *&Cmp();
virtual void *Cmp();
WindowType *&Main();
WindowType *Main();
virtual void Refresh();
virtual void RefreshWindow();
@ -82,12 +82,12 @@ template <class WindowType> class Screen : public BasicScreen
WindowType *w;
};
template <class WindowType> void *&Screen<WindowType>::Cmp()
template <class WindowType> void *Screen<WindowType>::Cmp()
{
return *(void **)(void *)&w;
return w;
}
template <class WindowType> WindowType *&Screen<WindowType>::Main()
template <class WindowType> WindowType *Screen<WindowType>::Main()
{
return w;
}

@ -540,12 +540,12 @@ void Window::GotoXY(int x, int y)
itsY = y;
}
const int &Window::X() const
int Window::X() const
{
return itsX;
}
const int &Window::Y() const
int Window::Y() const
{
return itsY;
}

@ -93,8 +93,8 @@ namespace NCurses
std::string GetString(size_t length = -1, size_t width = 0, bool encrypted = 0) const { return GetString("", length, width, encrypted); }
void GetXY(int &, int &);
void GotoXY(int, int);
const int &X() const;
const int &Y() const;
int X() const;
int Y() const;
void SetGetStringHelper(GetStringHelper helper) { itsGetStringHelper = helper; }
void SetColor(Color, Color = clDefault);

Loading…
Cancel
Save