When I tried to compile lessons on Mac OS X with gcc-4.9. I got the following error:
$ g++-4.9 -std=c++11 -I/Users/yinghai/Code/fatal lesson/1.0-variables.cpp -o l1
In file included from /Users/yinghai/Code/fatal/fatal/test/test.h:14:0,
from /Users/yinghai/Code/fatal/fatal/lesson/lesson.h:13,
from /Users/yinghai/Code/fatal/fatal/lesson/driver.h:13,
from lesson/1.0-variables.cpp:10:
/Users/yinghai/Code/fatal/fatal/test/string.h:54:10: error: redefinition of 'struct fatal::detail::string_impl::parse_impl_conversion_pair<std::basic_string<char>, long long int>'
struct parse_impl_conversion_pair<std::string, From> { \
^
/Users/yinghai/Code/fatal/fatal/test/string.h:73:1: note: in expansion of macro 'FATAL_IMPL_PARSE_CONVERSION_PAIR'
FATAL_IMPL_PARSE_CONVERSION_PAIR(long long);
^
/Users/yinghai/Code/fatal/fatal/test/string.h:54:10: error: previous definition of 'struct fatal::detail::string_impl::parse_impl_conversion_pair<std::basic_string<char>, long long int>'
struct parse_impl_conversion_pair<std::string, From> { \
^
/Users/yinghai/Code/fatal/fatal/test/string.h:67:1: note: in expansion of macro 'FATAL_IMPL_PARSE_CONVERSION_PAIR'
FATAL_IMPL_PARSE_CONVERSION_PAIR(std::int64_t);
^
/Users/yinghai/Code/fatal/fatal/test/string.h:54:10: error: redefinition of 'struct fatal::detail::string_impl::parse_impl_conversion_pair<std::basic_string<char>, long long unsigned int>'
struct parse_impl_conversion_pair<std::string, From> { \
^
/Users/yinghai/Code/fatal/fatal/test/string.h:74:1: note: in expansion of macro 'FATAL_IMPL_PARSE_CONVERSION_PAIR'
FATAL_IMPL_PARSE_CONVERSION_PAIR(unsigned long long);
^
/Users/yinghai/Code/fatal/fatal/test/string.h:54:10: error: previous definition of 'struct fatal::detail::string_impl::parse_impl_conversion_pair<std::basic_string<char>, long long unsigned int>'
struct parse_impl_conversion_pair<std::string, From> { \
^
/Users/yinghai/Code/fatal/fatal/test/string.h:71:1: note: in expansion of macro 'FATAL_IMPL_PARSE_CONVERSION_PAIR'
FATAL_IMPL_PARSE_CONVERSION_PAIR(std::uint64_t);
^