title: Cython c++ example fails to recognize c++, why?
body: <p>I'm attempting to build to the example for 'using c++ in cython' at <a href="http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html">the Cython C++ page</a>, but setup appears not to recognize the language, c++. </p>
  
  <p>The files, taken from that same page are:</p>
  
  <p><strong>Rectangle.cpp</strong></p>
  
  <pre><code>#include "Rectangle.h"
  
  using namespace shapes;
  
  Rectangle::Rectangle(int X0, int Y0, int X1, int Y1){
      x0 = X0;
      y0 = Y0;
      x1 = X1;
      y1 = Y1;
  }
  
  Rectangle::~Rectangle() {}
  
  int Rectangle::getLength() {
      return (x1 - x0);
  }
  
  int Rectangle::getHeight() {
      return (y1 - y0);
  } 
  
  int Rectangle::getArea() {
      return (x1 - x0) * (y1 - y0);
  }
  
  void Rectangle::move(int dx, int dy) {
      x0 += dx;
      y0 += dy;
      x1 += dx;
      y1 += dy;
  }
  </code></pre>
  
  <hr>
  
  <p><strong>Rectangle.h:</strong></p>
  
  <pre><code>namespace shapes {
      class Rectangle {
      public:
      int x0, y0, x1, y1;
      Rectangle(int x0, int y0, int x1, int y1);
      ~Rectangle();
      int getLength();
      int getHeight();
      int getArea();
      void move(int dx, int dy);
      };
   } 
  </code></pre>
  
  <hr>
  
  <p><strong>rectangle.pyx</strong></p>
  
  <pre><code>cdef extern from "Rectangle.h" namespace "shapes":
  cdef cppclass Rectangle:
      Rectangle(int, int, int, int)
      int x0, y0, x1, y1
      int getLength()
      int getHeight()
      int getArea()
      void move(int, int)
  
  cdef class PyRectangle:
      cdef Rectangle *thisptr      # hold a C++ instance which we're wrapping
      def __cinit__(self, int x0, int y0, int x1, int y1):
          self.thisptr = new Rectangle(x0, y0, x1, y1)
      def __dealloc__(self):
          del self.thisptr
      def getLength(self):
          return self.thisptr.getLength()
      def getHeight(self):
          return self.thisptr.getHeight()
      def getArea(self):
          return self.thisptr.getArea()
      def move(self, dx, dy):
          self.thisptr.move(dx, dy)
  </code></pre>
  
  <hr>
  
  <p><strong>setup.py</strong></p>
  
  <pre><code>from distutils.core import setup
  from Cython.Build import cythonize
  
  setup(ext_modules = cythonize(
         "rectangle.pyx",            # our Cython source
         sources=["Rectangle.cpp"],  # additional source file(s)
         language="c++",             # generate C++ code
        ))
  </code></pre>
  
  <hr>
  
  <p>I attempt to build this with:</p>
  
  <pre><code>python setup.py --build_ext --inplace
  </code></pre>
  
  <p>But this fails, with the error "Operation only allowed in c++" suggesting that the language="c++" option is not being passed correctly.  </p>
  
  <pre><code>cython rectangle.pyx --cplus
  </code></pre>
  
  <p>does produce a c++ file, but I was hoping to be able to get the setup.py method to work.</p>
  
  <p>The entire error text is:</p>
  
  <pre><code>Cythonizing rectangle.pyx
  
  Error compiling Cython file:
  ------------------------------------------------------------
  ...
          void move(int, int)
  
  cdef class PyRectangle:
      cdef Rectangle *thisptr      # hold a C++ instance which we're wrapping
      def __cinit__(self, int x0, int y0, int x1, int y1):
          self.thisptr = new Rectangle(x0, y0, x1, y1)
                        ^
  ------------------------------------------------------------
  
  rectangle.pyx:13:27: Operation only allowed in c++
  
  Error compiling Cython file:
  ------------------------------------------------------------
  ...
  cdef class PyRectangle:
      cdef Rectangle *thisptr      # hold a C++ instance which we're wrapping
      def __cinit__(self, int x0, int y0, int x1, int y1):
          self.thisptr = new Rectangle(x0, y0, x1, y1)
      def __dealloc__(self):
          del self.thisptr
         ^
  ------------------------------------------------------------
  
  rectangle.pyx:15:8: Operation only allowed in c++
  Traceback (most recent call last):
    File "setup.py", line 8, in &lt;module&gt;
      language="c++",             # generate C++ code
    File "/Library/Python/2.7/site-packages/Cython-0.19.1-py2.7-macosx-10.8intel.egg/Cython/Build/Dependencies.py", line 753, in cythonize
      cythonize_one(*args[1:])
    File "/Library/Python/2.7/site-packages/Cython-0.19.1-py2.7-macosx-10.8intel.egg/Cython/Build/Dependencies.py", line 820, in cythonize_one
      raise CompileError(None, pyx_file)
  Cython.Compiler.Errors.CompileError: rectangle.pyx
  </code></pre>