From 9e7f2865847bc3b1afda77d982c950a118dfc314 Mon Sep 17 00:00:00 2001
From: Michael Droettboom <mdboom@gmail.com>
Date: Mon, 17 Dec 2012 15:09:18 -0500
Subject: [PATCH] Document the C/C++ code guidelines

---
 doc/devel/coding_guide.rst | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/doc/devel/coding_guide.rst b/doc/devel/coding_guide.rst
index a796d57afce2..7273fb38313d 100644
--- a/doc/devel/coding_guide.rst
+++ b/doc/devel/coding_guide.rst
@@ -105,6 +105,25 @@ Installation
   ones, make sure the new files included in the match patterns in
   :file:`MANIFEST.in`, and/or in `package_data` in `setup.py`.
 
+C/C++ extensions
+----------------
+
+* Extensions may be written in C or C++.
+
+* Code style should conform to PEP7 (understanding that PEP7 doesn't
+  address C++, but most of its admonitions still apply).
+
+* Interfacing with Python may be done either with the raw Python/C API
+  or Cython.  Use of PyCXX is discouraged for new code.
+
+* Python/C interface code should be kept separate from the core C/C++
+  code.  The interface code should be named `FOO_wrap.cpp`.
+
+* Header file documentation (aka docstrings) should be in Numpydoc
+  format.  We don't plan on using automated tools for these
+  docstrings, and the Numpydoc format is well understood in the
+  scientific Python community.
+
 Style guide
 ===========