diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 13fc46959a5b2342ea9c9263fec26d9e4d848cac..b694794c36ea1ba4e3b36fdb1d21f69716ab59fd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -856,30 +856,86 @@ clang_4.0_mpionly:
 clang_4.0_hybrid:
    <<: *build_hybrid_definition
    image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
+   only:
+      - triggers
    tags:
       - docker
 
 clang_4.0_serial_dbg:
    <<: *build_serial_dbg_definition
    image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
+   only:
+      - triggers
    tags:
       - docker
 
 clang_4.0_mpionly_dbg:
    <<: *build_mpionly_dbg_definition
    image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
+   only:
+      - triggers
    tags:
       - docker
 
 clang_4.0_hybrid_dbg:
    <<: *build_hybrid_dbg_definition
    image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
+   only:
+      - triggers
    tags:
       - docker
 
 clang_4.0_hybrid_dbg_sp:
    <<: *build_hybrid_dbg_sp_definition
    image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
+   only:
+      - triggers
+   tags:
+      - docker
+
+clang_5.0_serial:
+   <<: *build_serial_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
+   only:
+      - triggers
+   tags:
+      - docker
+
+clang_5.0_mpionly:
+   <<: *build_mpionly_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
+   only:
+      - triggers
+   tags:
+      - docker
+
+clang_5.0_hybrid:
+   <<: *build_hybrid_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
+   tags:
+      - docker
+
+clang_5.0_serial_dbg:
+   <<: *build_serial_dbg_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
+   tags:
+      - docker
+
+clang_5.0_mpionly_dbg:
+   <<: *build_mpionly_dbg_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
+   tags:
+      - docker
+
+clang_5.0_hybrid_dbg:
+   <<: *build_hybrid_dbg_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
+   tags:
+      - docker
+
+clang_5.0_hybrid_dbg_sp:
+   <<: *build_hybrid_dbg_sp_definition
+   image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
    tags:
       - docker
 
diff --git a/src/pde/iterations/VCycles.impl.h b/src/pde/iterations/VCycles.impl.h
index 107112bc0bae55cdee0441f5d768a0b2230903d8..8ad0833d4f9c4f1173f32a9dd4a2d011b6c8fa07 100644
--- a/src/pde/iterations/VCycles.impl.h
+++ b/src/pde/iterations/VCycles.impl.h
@@ -34,6 +34,8 @@
 #include "pde/iterations/CGFixedStencilIteration.h"
 #include "pde/iterations/CGIteration.h"
 
+#include <functional>
+
 namespace walberla {
 namespace pde {
 
@@ -85,9 +87,7 @@ VCycles< Stencil_T >::VCycles( shared_ptr< StructuredBlockForest > blocks, const
    // Set up fields for coarser levels
    for ( uint_t lvl = 1; lvl < numLvl; ++lvl )
    {
-      auto getSize = [this,lvl] ( const shared_ptr< StructuredBlockStorage > & sbs, IBlock * const b ) {
-         return VCycles<Stencil_T>::getSizeForLevel(lvl, sbs, b);
-      };
+      auto getSize = std::bind(VCycles<Stencil_T>::getSizeForLevel, lvl, std::placeholders::_1, std::placeholders::_2);
       uId_.push_back( field::addToStorage< PdeField_T >( blocks, "u_"+boost::lexical_cast<std::string>(lvl), getSize, real_t(0), field::zyxf, uint_t(1) ) );
       fId_.push_back( field::addToStorage< PdeField_T >( blocks, "f_"+boost::lexical_cast<std::string>(lvl), getSize, real_t(0), field::zyxf, uint_t(1) ) );
       rId_.push_back( field::addToStorage< PdeField_T >( blocks, "r_"+boost::lexical_cast<std::string>(lvl), getSize, real_t(0), field::zyxf, uint_t(1) ) );
@@ -100,9 +100,7 @@ VCycles< Stencil_T >::VCycles( shared_ptr< StructuredBlockForest > blocks, const
    }
 
    // Set up fields for CG on coarsest level
-   auto getFineSize = [this,numLvl] ( const shared_ptr< StructuredBlockStorage > & sbs, IBlock * const b ) {
-      return VCycles<Stencil_T>::getSizeForLevel(numLvl-1, sbs, b);
-   };
+   auto getFineSize = std::bind(VCycles<Stencil_T>::getSizeForLevel, numLvl-1, std::placeholders::_1, std::placeholders::_2);
    dId_ = field::addToStorage< PdeField_T >( blocks, "d", getFineSize, real_t(0), field::zyxf, uint_t(1) );
    zId_ = field::addToStorage< PdeField_T >( blocks, "z", getFineSize, real_t(0), field::zyxf, uint_t(1) );
 
@@ -194,9 +192,7 @@ VCycles< Stencil_T >::VCycles( shared_ptr< StructuredBlockForest > blocks, const
    // Set up fields for coarser levels
    for ( uint_t lvl = 1; lvl < numLvl; ++lvl )
    {
-      auto getSize = [this,lvl] ( const shared_ptr< StructuredBlockStorage > & sbs, IBlock * const b ) {
-         return VCycles<Stencil_T>::getSizeForLevel(lvl, sbs, b);
-      };
+      auto getSize = std::bind(VCycles<Stencil_T>::getSizeForLevel, lvl, std::placeholders::_1, std::placeholders::_2);
       uId_.push_back( field::addToStorage< PdeField_T >( blocks, "u_"+boost::lexical_cast<std::string>(lvl), getSize, real_t(0), field::zyxf, uint_t(1) ) );
       fId_.push_back( field::addToStorage< PdeField_T >( blocks, "f_"+boost::lexical_cast<std::string>(lvl), getSize, real_t(0), field::zyxf, uint_t(1) ) );
       rId_.push_back( field::addToStorage< PdeField_T >( blocks, "r_"+boost::lexical_cast<std::string>(lvl), getSize, real_t(0), field::zyxf, uint_t(1) ) );
@@ -206,9 +202,7 @@ VCycles< Stencil_T >::VCycles( shared_ptr< StructuredBlockForest > blocks, const
    coarsenStencilFields(); // scaling by ( 1/h^2 )^lvl
 
    // Set up fields for CG on coarsest level
-   auto getFineSize = [this,numLvl] ( const shared_ptr< StructuredBlockStorage > & sbs, IBlock * const b ) {
-      return VCycles<Stencil_T>::getSizeForLevel(numLvl-1, sbs, b);
-   };
+   auto getFineSize = std::bind(VCycles<Stencil_T>::getSizeForLevel, numLvl-1, std::placeholders::_1, std::placeholders::_2);
    dId_ = field::addToStorage< PdeField_T >( blocks, "d", getFineSize, real_t(0), field::zyxf, uint_t(1) );
    zId_ = field::addToStorage< PdeField_T >( blocks, "z", getFineSize, real_t(0), field::zyxf, uint_t(1) );