Home - noe/gtplib GitHub Wiki

Welcome to the gtplib wiki!

gtplib is a header-only C++ library implementing the Go Text Protocol. The specification of the protocol itself can be found here.

In order to use it, you just have to create a class that handles GTP commands and wire it like this:

TODO: piece of code showing how to use it

It uses the following features from C++11:

  • strongly-typed enums (i.e. 'enum class').
  • type aliases (i.e.new usage of keyword 'using').
  • for each loops.
  • auto.
  • variadic templates.
  • tuples.
  • atomics.
  • initializer lists.

The template metaprogramming idioms used are:

  • Normal template specialization for static dispatching and branching.
  • int-to-type to map GTP command type enum values to types.
  • type traits to store GTP commands metainfo.