- On linux, it should be buildable using g++ -std=c++0x
- this means we can support older compilers, such as gcc 4.4
- On Windows, since we want to be able to build Python wrappers, so we need to support Visual Studio 2008 and Visual Studio 2010
- not using templating, since it makes writing wrappers for scripting languages harder
- it also causes cryptic debugging messages
- callbacks are poorly supported when using from scripting languages, as are classes that need to be overridden by the client script/code
- Building is mostly done using cmake.
- cogapp generator is used extensively, to accelerate development, reduce the number of manual copy-and-pasting and so on. Specifically, it's used for:
- generating header declarations from .cpp definition files
- generating fluent-style argument classes for certain tests
- ... and more uses will surely be found :-)
- You need Python installed and available for this to work. You don't need python just to
build the sources, but if you do have python installed, and you flip the
PYTHON_AVAILABLE
(note: might have changed names recently :-P ) switch in the cmake configuration, then a lot of manual editing will no longer be necessary :-)
- whitespace:
- I've been using eg
foo( somearg, argtwo )
, but will probably change tofoo(somearg, argtwo)
, since that's same as pep8, and torch also uses this standard - no whitespace in between functions in .cpp files (to reduce scrolling)
- I've been using eg
- braces:
{
at end of previous line, likeif(foo) {