Giter VIP home page Giter VIP logo

boson's People

Contributors

duckie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

boson's Issues

Boson Exception on Interrupt Handling

I am writing a server application and want to handle interrupt signal. I added the following to the main application.

void signal_handler(int x) {
  // cleanup code
}
signal(SIGINT, signal_handler);

it throws the following error.

terminate called after throwing an instance of 'boson::exception'
  what():  Syscall error (epoll_wait) EINTR : Interrupted system call
Aborted (core dumped)

I would be interested in knowing what is the best way to handle when using boson.

test/select.cc:376:14: error: using typedef-name ‘using sockaddr_in = struct sockaddr_in’ after ‘struct’

Hi,

I'm trying to build boson on Arch Linux using the latest version of GCC (8.2.1).

-- Build files have been written to: /home/alexander/archpackages/boson/src/boson/build
[34/87] Building CXX object src/boson/test/CMakeFiles/unit_tests.dir/select.o
FAILED: src/boson/test/CMakeFiles/unit_tests.dir/select.o 
/usr/lib/ccache/bin/c++   -I../src/boson/boson -I../src/boson/src/linux -I../src/boson -Isrc/boson -I../3rdparty/fmt -I../3rdparty/wfqueue/SYSTEM -I../3rdparty/wfqueue -I../3rdparty/catch -w -Wfatal-errors -std=c++14 -Wno-pragmas -MD -MT src/boson/test/CMakeFiles/unit_tests.dir/select.o -MF src/boson/test/CMakeFiles/unit_tests.dir/select.o.d -o src/boson/test/CMakeFiles/unit_tests.dir/select.o -c ../src/boson/test/select.cc
../src/boson/test/select.cc: In lambda function:
../src/boson/test/select.cc:376:14: error: using typedef-name ‘using sockaddr_in = struct sockaddr_in’ after ‘struct’
       struct sockaddr_in cli_addr;
              ^~~~~~~~~~~
compilation terminated due to -Wfatal-errors.

Here is the PKGBUILD I'm working on, with the commands I use to build:

# Maintainer: Alexander F. Rødseth <[email protected]>

pkgname=boson
pkgver=1.0
pkgrel=1
pkgdesc='Coroutine library for C++14'
arch=('x86_64')
url='https://github.com/duckie/boson'
license=('MIT')
makedepends=('cmake' 'doxygen' 'git' 'ninja')
source=("git://github.com/duckie/boson#commit=f3eb787f")
md5sums=('SKIP')

prepare() {
  sed -i 's/std=c++1y/std=c++14/g' "$pkgname/cmake/ProjectGlobalMacros.cmake"
}

build() {
  cd "$pkgname"
  mkdir -p build
  cd build
  cmake .. \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_CXX_FLAGS="-w -Wfatal-errors" \
    -G Ninja
  ninja
}

package() {
  DESTDIR="$pkgdir" ninja -C "$pkgname/build" install
}

# vim: ts=2 sw=2 et:

Quick Tutorial tweak to use non-const fails to compile

In your quick tutorial located:
https://github.com/duckie/boson/blob/master/docs/md/manual.md

rather than using:
channel<std::string, 2> msg_chan;

I wanted to use:

#include <unistd.h>
channel<std::string, sysconf(_SC_NPROCESSORS_ONLN)> msg_chan;

but it fails to compile.
"not usable in a constant expression"

To compile I am using the following:
g++ basic_boson_channel.cc -o basic_boson_channel -std=c++14 -Wno-pragmas -I/home/dma2/mygocppchannels/boson/src/boson -I/home/dma2/mygocppchannels/boson/build/src/boson -I/home/dma2/mygocppchannels/boson/3rdparty/fmt -I/home/dma2/mygocppchannels/boson/3rdparty/wfqueue/SYSTEM -I/home/dma2/mygocppchannels/boson/3rdparty/wfqueue -rdynamic -L/home/dma2/mygocppchannels/boson/build/lib -lboson -lfmt -lwfqueue -lpthread -fpermissive
Thank you for listening.

Not able to build boson on Ubuntu 14.04

Am I missing something trivial here?

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
[  1%] [  7%] Built target wfqueue
[  8%] Built target testlib
Built target fmt
[ 12%] Built target boson_fcontext
[ 14%] Built target bosonqueues
[ 16%] [ 17%] [ 19%] Building CXX object src/boson/CMakeFiles/boson.dir/src/engine.o
[ 23%] Building CXX object src/boson/CMakeFiles/boson.dir/src/logger.o
Building CXX object src/boson/CMakeFiles/boson.dir/src/syscalls.o
[ 23%] Building CXX object src/boson/CMakeFiles/boson.dir/src/semaphore.o
Building CXX object src/boson/CMakeFiles/boson.dir/src/internal/netpoller.o
[ 25%] [ 26%] [ 28%] Building CXX object src/boson/CMakeFiles/boson.dir/src/internal/routine.o
Building CXX object src/boson/CMakeFiles/boson.dir/src/internal/thread.o
Building CXX object src/boson/CMakeFiles/boson.dir/src/linux/io_event_loop_impl.o
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:8:0,
                 from ~/Workspace/boson/src/boson/boson/semaphore.h:7,
                 from ~/Workspace/boson/src/boson/src/semaphore.cc:1:
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:8:0,
                 from ~/Workspace/boson/src/boson/src/syscalls.cc:3:
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:10:0,
                 from ~/Workspace/boson/src/boson/src/syscalls.cc:3:
~/Workspace/boson/src/boson/boson/utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected declaration before end of line
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:10:0,
                 from ~/Workspace/boson/src/boson/boson/semaphore.h:7,
                 from ~/Workspace/boson/src/boson/src/semaphore.cc:1:
~/Workspace/boson/src/boson/boson/utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected declaration before end of line
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/syscalls.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:8:0,
                 from ~/Workspace/boson/src/boson/src/internal/routine.cc:1:
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/semaphore.o] Error 1
In file included from ~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:6:0,
                 from ~/Workspace/boson/src/boson/boson/internal/../queues/mpsc.h:36,
                 from ~/Workspace/boson/src/boson/boson/internal/netpoller.h:5,
                 from ~/Workspace/boson/src/boson/src/internal/netpoller.cc:1:
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/internal/../queues/../std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
In file included from ~/Workspace/boson/src/boson/boson/internal/../queues/mpsc.h:36:0,
                 from ~/Workspace/boson/src/boson/boson/internal/netpoller.h:5,
                 from ~/Workspace/boson/src/boson/src/internal/netpoller.cc:1:
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/internal/../queues/../utility.h:25:28: error: expected declaration before end of line
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:10:0,
                 from ~/Workspace/boson/src/boson/src/internal/routine.cc:1:
~/Workspace/boson/src/boson/boson/utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected declaration before end of line
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/internal/netpoller.o] Error 1
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/internal/routine.o] Error 1
In file included from ~/Workspace/boson/src/boson/boson/logger.h:12:0,
                 from ~/Workspace/boson/src/boson/src/logger.cc:1:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:157:18: error: ‘index_sequence’ is not a member of ‘std’
 struct type_list<std::index_sequence<Is...>, Types...> : type_info<Types, Is>... {
                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:157:18: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:157:40: error: expected parameter pack before ‘...’
 struct type_list<std::index_sequence<Is...>, Types...> : type_info<Types, Is>... {
                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:157:43: error: template argument 1 is invalid
 struct type_list<std::index_sequence<Is...>, Types...> : type_info<Types, Is>... {
                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:347:1: error: ‘enable_if_t’ in namespace ‘std’ does not name a type
 std::enable_if_t<store_on_stack<T, MemSize>::value, void> deleter_fp(void** data) {
 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:353:1: error: ‘enable_if_t’ in namespace ‘std’ does not name a type
 std::enable_if_t<!store_on_stack<T, MemSize>::value, void> deleter_fp(void** data) {
 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:405:23: error: expected ‘;’ at end of member declaration
   std::size_t type_ = sizeof...(Value);
                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:405:29: error: expected unqualified-id before ‘...’ token
   std::size_t type_ = sizeof...(Value);
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:411:35: error: ‘make_index_sequence’ is not a member of ‘std’
       type_list_traits::type_list<std::make_index_sequence<sizeof...(Value)>, Value...>;
                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:411:35: error: ‘make_index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:411:76: error: template argument 1 is invalid
       type_list_traits::type_list<std::make_index_sequence<sizeof...(Value)>, Value...>;
                                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:413:58: error: ‘make_index_sequence’ is not a member of ‘std’
   using target_type_list_t = type_list_traits::type_list<std::make_index_sequence<sizeof...(Value)>,
                                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:413:58: error: ‘make_index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:413:99: error: template argument 1 is invalid
   using target_type_list_t = type_list_traits::type_list<std::make_index_sequence<sizeof...(Value)>,
                                                                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:429:25: error: expected type-specifier
     using target_type = std::decay_t<T>;
                         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:432:32: error: ‘target_type_list_t’ was not declared in this scope
                                target_type_list_t::template get_index<std::decay_t<target_type>>()>;
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:432:99: error: template argument 2 is invalid
                                target_type_list_t::template get_index<std::decay_t<target_type>>()>;
                                                                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:433:27: error: ‘type_list_t’ has not been declared
     using type = typename type_list_t::template type_at<type_index::value>::type;
                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:433:56: error: expected template-name before ‘<’ token
     using type = typename type_list_t::template type_at<type_index::value>::type;
                                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:433:56: error: expected identifier before ‘<’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:434:42: error: ‘type’ was not declared in this scope
     using on_stack_type = store_on_stack<type, memory_size>;
                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:434:59: error: template argument 1 is invalid
     using on_stack_type = store_on_stack<type, memory_size>;
                                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:437:33: error: ‘target_type_list_t’ has not been declared
   using default_type = typename target_type_list_t::template type_at<
                                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:437:69: error: expected template-name before ‘<’ token
   using default_type = typename target_type_list_t::template type_at<
                                                                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:437:69: error: expected identifier before ‘<’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:441:29: error: expected type-specifier
   using enable_if_stack_t = std::enable_if_t<resolve_type<T>::on_stack_type::value, Return>;
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:443:28: error: expected type-specifier
   using enable_if_heap_t = std::enable_if_t<!resolve_type<T>::on_stack_type::value, Return>;
                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:456:3: error: ‘enable_if_stack_t’ does not name a type
   enable_if_stack_t<T, void> allocate(Arg&& arg, Args&&... args) {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:461:3: error: ‘enable_if_heap_t’ does not name a type
   enable_if_heap_t<T, void> allocate(Arg&& arg, Args&&... args) {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:500:29: error: expected type-specifier
             class Enabler = std::enable_if_t<HasDefault, void>>
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:500:29: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:501:60: error: ‘default_type’ was not declared in this scope
   variant() noexcept(std::is_nothrow_default_constructible<default_type>::value) {
                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:501:72: error: template argument 1 is invalid
   variant() noexcept(std::is_nothrow_default_constructible<default_type>::value) {
                                                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:522:23: error: expected type-specifier
       class Enabler = std::enable_if_t<
                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:522:23: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:527:49: error: template argument 1 is invalid
                                     Arg, Args...>::value) {
                                                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:585:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:585:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:599:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:599:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:604:12: error: ‘template<class ... Value> template<class T, class Enabler> json_backbone::variant<Value>& json_backbone::variant<Value>::assign(T&&)’ cannot be overloaded
   variant& assign(T&& value) {
            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:587:12: error: with ‘template<class ... Value> template<class T, class Enabler> json_backbone::variant<Value>& json_backbone::variant<Value>::assign(T&&)’
   variant& assign(T&& value) {
            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:614:26: error: expected type-specifier
                          std::enable_if_t<!std::is_base_of<variant, std::decay_t<T>>::value, void>>
                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:614:26: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:627:3: error: ‘enable_if_stack_t’ does not name a type
   enable_if_stack_t<T, T&> get() & {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:635:3: error: ‘enable_if_heap_t’ does not name a type
   enable_if_heap_t<T, T&> get() & {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:643:3: error: ‘enable_if_stack_t’ does not name a type
   enable_if_stack_t<T, T const&> get() const & {
   ^
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:8:0,
                 from ~/Workspace/boson/src/boson/boson/engine.h:12,
                 from ~/Workspace/boson/src/boson/src/engine.cc:1:
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:651:3: error: ‘enable_if_heap_t’ does not name a type
   enable_if_heap_t<T, T const&> get() const & {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:659:3: error: ‘enable_if_stack_t’ does not name a type
   enable_if_stack_t<T, T> get() && {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:667:3: error: ‘enable_if_heap_t’ does not name a type
   enable_if_heap_t<T, T> get() && {
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:675:14: error: ‘enable_if_stack_t’ does not name a type
       inline enable_if_stack_t<T, T&> raw() & noexcept {
              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:682:14: error: ‘enable_if_heap_t’ does not name a type
       inline enable_if_heap_t<T, T&> raw() & noexcept {
              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:689:10: error: ‘enable_if_stack_t’ does not name a type
   inline enable_if_stack_t<T, T const&> raw() const& noexcept {
          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:696:10: error: ‘enable_if_heap_t’ does not name a type
   inline enable_if_heap_t<T, T const&> raw() const& noexcept {
          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:703:14: error: ‘enable_if_stack_t’ does not name a type
       inline enable_if_stack_t<T, T> raw() && noexcept {
              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:710:14: error: ‘enable_if_heap_t’ does not name a type
       inline enable_if_heap_t<T, T> raw() && noexcept {
              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:716:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:716:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:722:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:722:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:728:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:728:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:405:23: error: expected primary-expression at end of input
   std::size_t type_ = sizeof...(Value);
                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In static member function ‘static constexpr void json_backbone::variant<Value>::assert_has_type()’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:423:19: error: ‘target_type_list_t’ has not been declared
     static_assert(target_type_list_t::template has_type<bounded_identity_t<std::decay_t<T>>>(),
                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:423:76: error: ‘decay_t’ is not a member of ‘std’
     static_assert(target_type_list_t::template has_type<bounded_identity_t<std::decay_t<T>>>(),
                                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:423:76: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:423:89: error: template argument 1 is invalid
     static_assert(target_type_list_t::template has_type<bounded_identity_t<std::decay_t<T>>>(),
                                                                                         ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:423:92: error: expected primary-expression before ‘>’ token
     static_assert(target_type_list_t::template has_type<bounded_identity_t<std::decay_t<T>>>(),
                                                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:423:94: error: expected primary-expression before ‘)’ token
     static_assert(target_type_list_t::template has_type<bounded_identity_t<std::decay_t<T>>>(),
                                                                                              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘void json_backbone::variant<Value>::clear()’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:450:9: error: ‘deleter_fp’ is not a member of ‘json_backbone::helpers’
         helpers::deleter_fp<Value, bounded_identity_t<Value>, memory_size>...};
         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:450:34: error: expected primary-expression before ‘,’ token
         helpers::deleter_fp<Value, bounded_identity_t<Value>, memory_size>...};
                                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:450:61: error: expected primary-expression before ‘,’ token
         helpers::deleter_fp<Value, bounded_identity_t<Value>, memory_size>...};
                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:450:75: error: expected primary-expression before ‘...’ token
         helpers::deleter_fp<Value, bounded_identity_t<Value>, memory_size>...};
                                                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘void json_backbone::variant<Value>::create(Arg&&, Args&& ...)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:469:18: error: ‘target_type_list_t’ has not been declared
         typename target_type_list_t::template select_constructible<memory_size, Arg, Args...>::type;
                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:469:67: error: expected template-name before ‘<’ token
         typename target_type_list_t::template select_constructible<memory_size, Arg, Args...>::type;
                                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:469:67: error: expected identifier before ‘<’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:470:21: error: ‘target_type’ was not declared in this scope
     assert_has_type<target_type>();
                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:471:40: error: the value of ‘target_type’ is not usable in a constant expression
     using resolved_type = resolve_type<target_type>;
                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:470:21: note: ‘target_type’ was not declared ‘constexpr’
     assert_has_type<target_type>();
                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:471:51: error: type/value mismatch at argument 1 in template parameter list for ‘template<class ... Value> template<class T> struct json_backbone::variant<Value>::resolve_type’
     using resolved_type = resolve_type<target_type>;
                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:471:51: error:   expected a type, got ‘target_type’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:472:13: error: ‘resolved_type’ has not been declared
     type_ = resolved_type::type_index::value;
             ^
In file included from ~/Workspace/boson/src/boson/boson/internal/routine.h:10:0,
                 from ~/Workspace/boson/src/boson/boson/engine.h:12,
                 from ~/Workspace/boson/src/boson/src/engine.cc:1:
~/Workspace/boson/src/boson/boson/utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:473:5: error: ‘allocate’ was not declared in this scope
     allocate<target_type>(std::forward<Arg>(arg), std::forward<Args>(args)...);
     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:473:75: error: expected ‘)’ before ‘...’ token
     allocate<target_type>(std::forward<Arg>(arg), std::forward<Args>(args)...);
                                                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:473:79: error: parameter packs not expanded with ‘...’:
     allocate<target_type>(std::forward<Arg>(arg), std::forward<Args>(args)...);
                                                                               ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:473:79: note:         ‘args’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:473:79: note:         ‘Args’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘json_backbone::variant<Value>::variant()’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:502:25: error: there are no arguments to ‘default_type’ that depend on a template parameter, so a declaration of ‘default_type’ must be available [-fpermissive]
     create(default_type());
                         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:502:25: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘json_backbone::variant<Value>::variant(Arg&&, Args&& ...)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:529:9: error: ‘target_type_list_t’ has not been declared
         target_type_list_t::template select_constructible<memory_size, Arg, Args...>::index_value <
         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:529:72: error: expected string-literal before ‘Arg’
         target_type_list_t::template select_constructible<memory_size, Arg, Args...>::index_value <
                                                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:529:72: error: expected ‘)’ before ‘Arg’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:533:18: error: ‘target_type_list_t’ has not been declared
         typename target_type_list_t::template select_constructible<memory_size, Arg, Args...>::type;
                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:533:67: error: expected template-name before ‘<’ token
         typename target_type_list_t::template select_constructible<memory_size, Arg, Args...>::type;
                                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:533:67: error: expected identifier before ‘<’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:534:21: error: ‘target_type’ was not declared in this scope
     assert_has_type<target_type>();
                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In static member function ‘static constexpr size_t json_backbone::variant<Value>::type_index()’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:580:21: error: ‘decay_t’ is not a member of ‘std’
     assert_has_type<std::decay_t<T>>();
                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:580:21: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:580:5: error: parse error in template argument list
     assert_has_type<std::decay_t<T>>();
     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:580:38: error: expected primary-expression before ‘)’ token
     assert_has_type<std::decay_t<T>>();
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:581:12: error: ‘target_type_list_t’ has not been declared
     return target_type_list_t::template get_index<std::decay_t<T>>();
            ^
~/Workspace/boson/src/boson/boson/utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/utility.h:25:28: error: expected declaration before end of line
In file included from ~/Workspace/boson/src/boson/boson/queues/../utility.h:6:0,
                 from ~/Workspace/boson/src/boson/boson/queues/mpsc.h:36,
                 from ~/Workspace/boson/src/boson/boson/internal/thread.h:17,
                 from ~/Workspace/boson/src/boson/src/internal/thread.cc:1:
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:581:51: error: ‘decay_t’ is not a member of ‘std’
     return target_type_list_t::template get_index<std::decay_t<T>>();
                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:581:65: error: expected primary-expression before ‘>>’ token
     return target_type_list_t::template get_index<std::decay_t<T>>();
                                                                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:581:68: error: expected primary-expression before ‘)’ token
     return target_type_list_t::template get_index<std::decay_t<T>>();
                                                                    ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘json_backbone::variant<Value>& json_backbone::variant<Value>::assign(T&&)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:588:21: error: ‘decay_t’ is not a member of ‘std’
     assert_has_type<std::decay_t<T>>();
                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:588:21: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:588:5: error: parse error in template argument list
     assert_has_type<std::decay_t<T>>();
     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:588:38: error: expected primary-expression before ‘)’ token
     assert_has_type<std::decay_t<T>>();
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:589:18: error: ‘target_type_list_t’ has not been declared
     if (type_ == target_type_list_t::template get_index<std::decay_t<T>>()) {
                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:589:57: error: ‘decay_t’ is not a member of ‘std’
     if (type_ == target_type_list_t::template get_index<std::decay_t<T>>()) {
                                                         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:589:71: error: expected primary-expression before ‘>>’ token
     if (type_ == target_type_list_t::template get_index<std::decay_t<T>>()) {
                                                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:589:74: error: expected primary-expression before ‘)’ token
     if (type_ == target_type_list_t::template get_index<std::decay_t<T>>()) {
                                                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:590:7: error: ‘raw’ was not declared in this scope
       raw<std::decay_t<T>>() = std::forward<T>(value);
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:590:11: error: ‘decay_t’ is not a member of ‘std’
       raw<std::decay_t<T>>() = std::forward<T>(value);
           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:590:25: error: expected primary-expression before ‘>>’ token
       raw<std::decay_t<T>>() = std::forward<T>(value);
                         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:590:28: error: expected primary-expression before ‘)’ token
       raw<std::decay_t<T>>() = std::forward<T>(value);
                            ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
In file included from ~/Workspace/boson/src/boson/boson/queues/mpsc.h:36:0,
                 from ~/Workspace/boson/src/boson/boson/internal/thread.h:17,
                 from ~/Workspace/boson/src/boson/src/internal/thread.cc:1:
~/Workspace/boson/src/boson/boson/queues/../utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:25:28: error: expected declaration before end of line
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘json_backbone::variant<Value>& json_backbone::variant<Value>::assign(T&&)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:605:19: error: ‘target_type_list_t’ has not been declared
     static_assert(target_type_list_t::template select_constructible<memory_size, T>::index_value <
                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:605:82: error: expected string-literal before ‘T’
     static_assert(target_type_list_t::template select_constructible<memory_size, T>::index_value <
                                                                                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:605:82: error: expected ‘)’ before ‘T’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:608:28: error: ‘target_type_list_t’ has not been declared
     return assign(typename target_type_list_t::template select_constructible<memory_size, T>::type{
                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:608:77: error: expected template-name before ‘<’ token
     return assign(typename target_type_list_t::template select_constructible<memory_size, T>::type{
                                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:608:77: error: expected identifier before ‘<’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:608:77: error: expected ‘(’ before ‘<’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:608:92: error: expected primary-expression before ‘>’ token
     return assign(typename target_type_list_t::template select_constructible<memory_size, T>::type{
                                                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:608:93: error: ‘::type’ has not been declared
     return assign(typename target_type_list_t::template select_constructible<memory_size, T>::type{
                                                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘bool json_backbone::variant<Value>::is() const’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:622:21: error: ‘target_type_list_t’ has not been declared
     return type_ == target_type_list_t::template get_index<T>();
                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:622:61: error: expected primary-expression before ‘>’ token
     return type_ == target_type_list_t::template get_index<T>();
                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:622:63: error: expected primary-expression before ‘)’ token
     return type_ == target_type_list_t::template get_index<T>();
                                                               ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘json_backbone::variant<Value>::operator T&() &’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:719:22: error: ‘decay_t’ is not a member of ‘std’
     return this->get<std::decay_t<T>>();
                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:719:36: error: expected primary-expression before ‘>>’ token
     return this->get<std::decay_t<T>>();
                                    ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:719:39: error: expected primary-expression before ‘)’ token
     return this->get<std::decay_t<T>>();
                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘json_backbone::variant<Value>::operator const T&() const &’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:725:22: error: ‘decay_t’ is not a member of ‘std’
     return this->get<std::decay_t<T>>();
                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:725:36: error: expected primary-expression before ‘>>’ token
     return this->get<std::decay_t<T>>();
                                    ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:725:39: error: expected primary-expression before ‘)’ token
     return this->get<std::decay_t<T>>();
                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘json_backbone::variant<Value>::operator T() &&’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:731:32: error: ‘decay_t’ is not a member of ‘std’
     return std::move(this->get<std::decay_t<T>>());
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:731:46: error: expected primary-expression before ‘>>’ token
     return std::move(this->get<std::decay_t<T>>());
                                              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:731:49: error: expected primary-expression before ‘)’ token
     return std::move(this->get<std::decay_t<T>>());
                                                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: At global scope:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:761:17: error: expected primary-expression before ‘auto’
 inline decltype(auto) raw(variant<Value...>& value) noexcept {
                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:761:17: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:761:8: error: expected unqualified-id before ‘decltype’
 inline decltype(auto) raw(variant<Value...>& value) noexcept {
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:767:17: error: expected primary-expression before ‘auto’
 inline decltype(auto) raw(variant<Value...> const& value) noexcept {
                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:767:17: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:767:8: error: expected unqualified-id before ‘decltype’
 inline decltype(auto) raw(variant<Value...> const& value) noexcept {
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:773:17: error: expected primary-expression before ‘auto’
 inline decltype(auto) raw(variant<Value...>&& value) noexcept {
                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:773:17: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:773:8: error: expected unqualified-id before ‘decltype’
 inline decltype(auto) raw(variant<Value...>&& value) noexcept {
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:792:35: error: ‘make_index_sequence’ is not a member of ‘std’
       type_list_traits::type_list<std::make_index_sequence<sizeof...(Value)>, Value...>;
                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:792:35: error: ‘make_index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:792:76: error: template argument 1 is invalid
       type_list_traits::type_list<std::make_index_sequence<sizeof...(Value)>, Value...>;
                                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:856:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<!std::is_integral<std::decay_t<T>>(), void>>
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:856:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:864:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<!std::is_integral<std::decay_t<T>>(), void>>
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:864:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:875:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<!std::is_integral<std::decay_t<T>>(), void>>
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:875:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:907:1: error: ‘enable_if_t’ in namespace ‘std’ does not name a type
 std::enable_if_t<!std::is_base_of<variant<Value...>, T>::value, bool> operator==(
 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:914:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a type
 inline std::enable_if_t<!std::is_base_of<variant<Value...>, T>::value, bool> operator==(
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:925:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a type
 inline std::enable_if_t<!std::is_base_of<variant<Value...>, T>::value, bool> operator!=(
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:931:8: error: ‘enable_if_t’ in namespace ‘std’ does not name a type
 inline std::enable_if_t<!std::is_base_of<variant<Value...>, T>::value, bool> operator!=(
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In function ‘Return json_backbone::apply_visitor(json_backbone::variant<Value ...>&, Visitor&&, ExtraArguments&& ...)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1033:52: error: ‘add_lvalue_reference_t’ is not a member of ‘std’
   static std::array<Return (*)(variant<Value...>&, std::add_lvalue_reference_t<Visitor>,
                                                    ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1035:37: error: template argument 1 is invalid
                     sizeof...(Value)> appliers = {
                                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1035:37: error: template argument 2 is invalid
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1035:48: error: invalid type in declaration before ‘=’ token
                     sizeof...(Value)> appliers = {
                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1037:11: error: ‘add_lvalue_reference_t’ is not a member of ‘std’
           std::add_lvalue_reference_t<Visitor>, Value, ExtraArguments...>...};
           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1037:11: error: ‘add_lvalue_reference_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1036:76: error: parse error in template argument list
       visiting_helpers::applier_maker<Return, variant<Value...>>::template applier_fp<
                                                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1037:54: error: expected primary-expression before ‘,’ token
           std::add_lvalue_reference_t<Visitor>, Value, ExtraArguments...>...};
                                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1037:70: error: expected primary-expression before ‘...’ token
           std::add_lvalue_reference_t<Visitor>, Value, ExtraArguments...>...};
                                                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1037:73: error: expected ‘}’ before ‘>’ token
           std::add_lvalue_reference_t<Visitor>, Value, ExtraArguments...>...};
                                                                         ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1037:73: error: expected ‘,’ or ‘;’ before ‘>’ token
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: At global scope:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1038:3: error: expected unqualified-id before ‘return’
   return appliers[values.type_index()](values, std::forward<Visitor>(visitor),
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1043:22: error: template declaration of ‘Return apply_visitor’
 Return apply_visitor(variant<Value...> const& values, Visitor&& visitor,
                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1043:22: error: ‘variant’ was not declared in this scope
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1043:22: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:389:7: note:   ‘json_backbone::variant’
 class variant {
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1043:35: error: expected primary-expression before ‘...’ token
 Return apply_visitor(variant<Value...> const& values, Visitor&& visitor,
                                   ^
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/internal/thread.o] Error 1
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1043:62: error: expected primary-expression before ‘&&’ token
 Return apply_visitor(variant<Value...> const& values, Visitor&& visitor,
                                                              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1043:65: error: ‘visitor’ was not declared in this scope
 Return apply_visitor(variant<Value...> const& values, Visitor&& visitor,
                                                                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1044:36: error: expected primary-expression before ‘&&’ token
                      ExtraArguments&&... extras) {
                                    ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1044:38: error: expected primary-expression before ‘...’ token
                      ExtraArguments&&... extras) {
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘Return func_aggregate_visitor_impl<Return, Variant, std::tuple<_Tail ...>, ExtraArguments ...>::operator()(T&&, ExtraArguments ...) const’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1071:74: error: ‘decay_t’ is not a member of ‘std’
     return std::get<variant_type::target_type_list_t::template get_index<std::decay_t<T>>()>(
                                                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1071:74: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1071:64: error: parse error in template argument list
     return std::get<variant_type::target_type_list_t::template get_index<std::decay_t<T>>()>(
                                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: At global scope:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1084:39: error: ‘variant’ was not declared in this scope
 struct func_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1084:39: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:389:7: note:   ‘json_backbone::variant’
 class variant {
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1084:52: error: expected parameter pack before ‘...’
 struct func_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                    ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1084:55: error: template argument 2 is invalid
 struct func_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1095:39: error: ‘container’ was not declared in this scope
 struct func_aggregate_visitor<Return, container<Object, Array, Key, Value...>, ExtraArguments...>
                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1095:39: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:782:7: note:   ‘json_backbone::container’
 class container
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1095:77: error: template argument 2 is invalid
 struct func_aggregate_visitor<Return, container<Object, Array, Key, Value...>, ExtraArguments...>
                                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1095:77: error: type/value mismatch at argument 1 in template parameter list for ‘template<class ...> struct func_aggregate_visitor’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1095:77: error:   expected a type, got ‘Array’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1110:45: error: ‘variant’ was not declared in this scope
 struct const_func_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1110:45: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:389:7: note:   ‘json_backbone::variant’
 class variant {
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1110:58: error: expected parameter pack before ‘...’
 struct const_func_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1110:61: error: template argument 2 is invalid
 struct const_func_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1123:45: error: ‘container’ was not declared in this scope
 struct const_func_aggregate_visitor<Return, container<Object, Array, Key, Value...>,
                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1123:45: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:782:7: note:   ‘json_backbone::container’
 class container
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1123:83: error: template argument 2 is invalid
 struct const_func_aggregate_visitor<Return, container<Object, Array, Key, Value...>,
                                                                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1123:83: error: type/value mismatch at argument 1 in template parameter list for ‘template<class ...> struct const_func_aggregate_visitor’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1123:83: error:   expected a type, got ‘Array’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1142:42: error: ‘variant’ was not declared in this scope
 struct funcptr_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1142:42: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:389:7: note:   ‘json_backbone::variant’
 class variant {
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1142:55: error: expected parameter pack before ‘...’
 struct funcptr_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1142:58: error: template argument 2 is invalid
 struct funcptr_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1153:42: error: ‘container’ was not declared in this scope
 struct funcptr_aggregate_visitor<Return, container<Object, Array, Key, Value...>, ExtraArguments...>
                                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1153:42: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:782:7: note:   ‘json_backbone::container’
 class container
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1153:80: error: template argument 2 is invalid
 struct funcptr_aggregate_visitor<Return, container<Object, Array, Key, Value...>, ExtraArguments...>
                                                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1153:80: error: type/value mismatch at argument 1 in template parameter list for ‘template<class ...> struct funcptr_aggregate_visitor’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1153:80: error:   expected a type, got ‘Array’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1166:48: error: ‘variant’ was not declared in this scope
 struct const_funcptr_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1166:48: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:389:7: note:   ‘json_backbone::variant’
 class variant {
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1166:61: error: expected parameter pack before ‘...’
 struct const_funcptr_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1166:64: error: template argument 2 is invalid
 struct const_funcptr_aggregate_visitor<Return, variant<Value...>, ExtraArguments...>
                                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1179:48: error: ‘container’ was not declared in this scope
 struct const_funcptr_aggregate_visitor<Return, container<Object, Array, Key, Value...>,
                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1179:48: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:782:7: note:   ‘json_backbone::container’
 class container
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1179:86: error: template argument 2 is invalid
 struct const_funcptr_aggregate_visitor<Return, container<Object, Array, Key, Value...>,
                                                                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1179:86: error: type/value mismatch at argument 1 in template parameter list for ‘template<class ...> struct const_funcptr_aggregate_visitor’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1179:86: error:   expected a type, got ‘Array’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1195:28: error: expected type-specifier
             class Enable = std::enable_if_t<std::is_convertible<Source, Target>::value, void>>
                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1195:28: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1201:28: error: expected type-specifier
             class Enable = std::enable_if_t<!std::is_convertible<Source, Target>::value, void>,
                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1201:28: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1203:17: error: ‘template<class Target, class Source, class Enable> static Target base_converter::convert(Source&&)’ cannot be overloaded
   static Target convert(Source&& value) {
                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1196:17: error: with ‘template<class Target, class Source, class Enable> static Target base_converter::convert(Source&&)’
   static Target convert(Source&& value) {
                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1211:43: error: ‘variant’ was not declared in this scope
 struct converter_maker<Return, Converter, variant<Value...>> {
                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1211:43: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:389:7: note:   ‘json_backbone::variant’
 class variant {
       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1211:56: error: expected parameter pack before ‘...’
 struct converter_maker<Return, Converter, variant<Value...>> {
                                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1211:56: error: template argument 3 is invalid
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1211:59: error: expected unqualified-id before ‘>’ token
 struct converter_maker<Return, Converter, variant<Value...>> {
                                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1242:29: error: expected type-specifier
             class Enabler = std::enable_if_t<std::is_default_constructible<T>::value, void>>
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1242:29: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1249:29: error: expected type-specifier
             class Enabler = std::enable_if_t<!std::is_default_constructible<T>::value, void>>
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1249:29: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1256:29: error: expected type-specifier
             class Enabler = std::enable_if_t<!std::is_default_constructible<T>::value, void>,
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1256:29: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1258:12: error: ‘template<class Container, class Converter> template<class T, class Enabler> const T& view<Container, Converter>::inner_get(const T&) const &’ cannot be overloaded
   T const& inner_get(T const& default_value) const & {
            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1243:12: error: with ‘template<class Container, class Converter> template<class T, class Enabler> const T& view<Container, Converter>::inner_get(const T&) const &’
   T const& inner_get(T const& default_value = {}) const & {
            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1292:38: error: expected type-specifier
   template <class T, class Enabler = std::enable_if_t<!std::is_integral<std::decay_t<T>>(), void>>
                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1292:38: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1370:29: error: expected type-specifier
             class Enabler = std::enable_if_t<
                             ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1370:29: error: expected ‘>’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘T view<Container, Converter>::get(T&&) const &’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1312:47: error: ‘decay_t’ is not a member of ‘std’
     if (container_ && container_->template is<std::decay_t<T>>())
                                               ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1312:47: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1312:44: error: parse error in template argument list
     if (container_ && container_->template is<std::decay_t<T>>())
                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1312:64: error: expected primary-expression before ‘)’ token
     if (container_ && container_->template is<std::decay_t<T>>())
                                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1313:39: error: ‘decay_t’ is not a member of ‘std’
       return container_->template raw<std::decay_t<T>>();
                                       ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1313:39: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1313:35: error: parse error in template argument list
       return container_->template raw<std::decay_t<T>>();
                                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1313:35: error: expected identifier
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1313:35: error: expected ‘;’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1313:56: error: expected primary-expression before ‘)’ token
       return container_->template raw<std::decay_t<T>>();
                                                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1314:5: error: ‘else’ without a previous ‘if’
     else
     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘T view<Container, Converter>::as() const &’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1324:28: error: ‘apply_visitor’ was not declared in this scope
     if (container_) return apply_visitor<T>(*container_, conversion_visitor);
                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1324:28: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1032:8: note:   ‘json_backbone::apply_visitor’
 Return apply_visitor(variant<Value...>& values, Visitor&& visitor, ExtraArguments&&... extras) {
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1324:43: error: expected primary-expression before ‘>’ token
     if (container_) return apply_visitor<T>(*container_, conversion_visitor);
                                           ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘view<Container, Converter>::operator T() const &’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1373:37: error: ‘decay_t’ is not a member of ‘std’
     return container_->template get<std::decay_t<T>>();
                                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1373:37: error: ‘decay_t’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1373:33: error: parse error in template argument list
     return container_->template get<std::decay_t<T>>();
                                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1373:54: error: expected primary-expression before ‘)’ token
     return container_->template get<std::decay_t<T>>();
                                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: At global scope:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1393:22: error: expected type-specifier before ‘variant’
   using value_type = variant<std::nullptr_t, array_iterator, object_iterator>;
                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1395:17: error: ‘visiting_helpers’ has not been declared
   friend struct visiting_helpers::applier_maker<bool, value_type>;
                 ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1395:48: error: expected unqualified-id before ‘<’ token
   friend struct visiting_helpers::applier_maker<bool, value_type>;
                                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1401:3: error: ‘value_type’ does not name a type
   value_type value_;
   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘view_iterator<view<Container, Converter> >::view_iterator()’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1406:53: error: class ‘view_iterator<view<Container, Converter> >’ does not have any field named ‘value_’
   view_iterator() noexcept : parent_view_{nullptr}, value_{nullptr} {};
                                                     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘view_iterator<view<Container, Converter> >::view_iterator(const view<Container>&, std::nullptr_t)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1409:32: error: class ‘view_iterator<view<Container, Converter> >’ does not have any field named ‘value_’
       : parent_view_{&parent}, value_{nullptr} {};
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘view_iterator<view<Container, Converter> >::view_iterator(const view<Container>&, view_iterator<view<Container, Converter> >::object_iterator&&)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1412:32: error: class ‘view_iterator<view<Container, Converter> >’ does not have any field named ‘value_’
       : parent_view_{&parent}, value_{std::move(value)} {
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘view_iterator<view<Container, Converter> >::view_iterator(const view<Container>&, const object_iterator&)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1420:32: error: class ‘view_iterator<view<Container, Converter> >’ does not have any field named ‘value_’
       : parent_view_{&parent}, value_{value} {
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘view_iterator<view<Container, Converter> >::view_iterator(const view<Container>&, view_iterator<view<Container, Converter> >::array_iterator&&)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1428:32: error: class ‘view_iterator<view<Container, Converter> >’ does not have any field named ‘value_’
       : parent_view_{&parent}, value_{std::move(value)} {
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In constructor ‘view_iterator<view<Container, Converter> >::view_iterator(const view<Container>&, const array_iterator&)’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1436:32: error: class ‘view_iterator<view<Container, Converter> >’ does not have any field named ‘value_’
       : parent_view_{&parent}, value_{value} {
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘view_iterator<view<Container, Converter> >& view_iterator<view<Container, Converter> >::operator++()’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1450:44: error: ‘value_type’ was not declared in this scope
     static funcptr_aggregate_visitor<void, value_type, view_iterator&> const increment_visitor{
                                            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1450:70: error: template argument 2 is invalid
     static funcptr_aggregate_visitor<void, value_type, view_iterator&> const increment_visitor{
                                                                      ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1450:95: error: invalid type in declaration before ‘{’ token
     static funcptr_aggregate_visitor<void, value_type, view_iterator&> const increment_visitor{
                                                                                               ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1468:5: error: ‘apply_visitor’ was not declared in this scope
     apply_visitor<void>(this->value_, increment_visitor, *this);
     ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1468:5: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1032:8: note:   ‘json_backbone::apply_visitor’
 Return apply_visitor(variant<Value...>& values, Visitor&& visitor, ExtraArguments&&... extras) {
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1468:19: error: expected primary-expression before ‘void’
     apply_visitor<void>(this->value_, increment_visitor, *this);
                   ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1468:19: error: expected ‘;’ before ‘void’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: In member function ‘bool view_iterator<view<Container, Converter> >::operator==(const view_iterator<view<Container, Converter> >&) const &’:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1482:50: error: ‘value_type’ was not declared in this scope
     static const_funcptr_aggregate_visitor<bool, value_type, view_iterator const&> const
                                                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1482:82: error: template argument 2 is invalid
     static const_funcptr_aggregate_visitor<bool, value_type, view_iterator const&> const
                                                                                  ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1483:24: error: invalid type in declaration before ‘{’ token
         compare_visitor{[](std::nullptr_t const&, view_iterator const& other) {
                        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1497:12: error: ‘apply_visitor’ was not declared in this scope
     return apply_visitor<bool, decltype(compare_visitor)&>(this->value_, compare_visitor, compared);
            ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1497:12: note: suggested alternative:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1032:8: note:   ‘json_backbone::apply_visitor’
 Return apply_visitor(variant<Value...>& values, Visitor&& visitor, ExtraArguments&&... extras) {
        ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1497:26: error: expected primary-expression before ‘bool’
     return apply_visitor<bool, decltype(compare_visitor)&>(this->value_, compare_visitor, compared);
                          ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1497:26: error: expected ‘;’ before ‘bool’
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1497:30: error: expected unqualified-id before ‘,’ token
     return apply_visitor<bool, decltype(compare_visitor)&>(this->value_, compare_visitor, compared);
                              ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1497:32: error: expected unqualified-id before ‘decltype’
     return apply_visitor<bool, decltype(compare_visitor)&>(this->value_, compare_visitor, compared);
                                ^
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp: At global scope:
~/Workspace/boson/src/boson/boson/external/json_backbone.hpp:1503:1: error: expected declaration before ‘}’ token
 }  // namespace json_backbone
 ^
In file included from ~/Workspace/boson/src/boson/boson/queues/../utility.h:6:0,
                 from ~/Workspace/boson/src/boson/boson/queues/mpsc.h:36,
                 from ~/Workspace/boson/src/boson/src/linux/io_event_loop_impl.h:13,
                 from ~/Workspace/boson/src/boson/src/linux/io_event_loop_impl.cc:1:
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:17:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_reference_wrapper_v’
 constexpr bool is_reference_wrapper_v = is_reference_wrapper<T>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:19:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_function_v’
 constexpr bool is_function_v = std::is_function<T>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:21:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_base_of_v’
 constexpr bool is_base_of_v = std::is_base_of<A, B>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:23:16: error: template declaration of ‘constexpr const bool boson::experimental::detail::is_member_pointer_v’
 constexpr bool is_member_pointer_v = std::is_member_pointer<T>::value;
                ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:28:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:28:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:36:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:36:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:46:8: error: expected type-specifier
     -> std::enable_if_t<is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:46:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:55:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_base_of_v<Base, std::decay_t<Derived>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:55:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:62:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && is_reference_wrapper_v<std::decay_t<RefWrap>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:62:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:69:8: error: expected type-specifier
     -> std::enable_if_t<!is_function_v<T> && !is_reference_wrapper_v<std::decay_t<Pointer>> &&
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:69:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:78:8: error: expected type-specifier
     -> std::enable_if_t<!is_member_pointer_v<std::decay_t<F>>,
        ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:78:8: error: expected initializer
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:87:23: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
     noexcept(noexcept(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)))
                       ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
         -> decltype(detail::INVOKE(std::forward<F>(f), std::forward<ArgTypes>(args)...)) {
                     ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:88:21: error: ‘INVOKE’ is not a member of ‘boson::experimental::detail’
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:94:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
                    ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:94:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:94:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply_impl(F&& f, Tuple&& t, std::index_sequence<I...>) {
           ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:100:20: error: expected primary-expression before ‘auto’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
                    ^
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:100:20: error: expected ‘)’ before ‘auto’
~/Workspace/boson/src/boson/boson/queues/../std/experimental/apply.h:100:11: error: expected unqualified-id before ‘decltype’
 constexpr decltype(auto) apply(F&& f, Tuple&& t) {
           ^
In file included from ~/Workspace/boson/src/boson/boson/queues/mpsc.h:36:0,
                 from ~/Workspace/boson/src/boson/src/linux/io_event_loop_impl.h:13,
                 from ~/Workspace/boson/src/boson/src/linux/io_event_loop_impl.cc:1:
~/Workspace/boson/src/boson/boson/queues/../utility.h:14:12: error: expected type-specifier
   operator std::decay_t<T> ();
            ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:15:12: error: expected type-specifier
   operator std::decay_t<T> const& () const = delete;
            ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                     ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:53: error: ‘index_sequence’ is not a member of ‘std’
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:78: error: expected parameter pack before ‘...’
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                              ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:23:81: error: wrong number of template arguments (4, should be 6)
 struct extract_tuple_argument_impl<Ret, F, InTuple, std::index_sequence<IHead...>,
                                                                                 ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:21:8: error: provided for ‘template<class Ret, class F, class InTuple, class SeqHead, class SeqTail, long unsigned int Index> struct boson::extract_tuple_argument_impl’
 struct extract_tuple_argument_impl;
        ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:25:28: error: expected ‘}’ before end of line
 #pragma GCC diagnostic push
                            ^
~/Workspace/boson/src/boson/boson/queues/../utility.h:25:28: error: expected declaration before end of line
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/linux/io_event_loop_impl.o] Error 1
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/engine.o] Error 1
make[2]: *** [src/boson/CMakeFiles/boson.dir/src/logger.o] Error 1
make[1]: *** [src/boson/CMakeFiles/boson.dir/all] Error 2
make: *** [all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.