   __host__ __device__
   void operator()() const {}
 };
+
+
+template<class T>
+struct container
+{
+  template<class Shape>
+  __host__ __device__
+  container(const Shape&);
+
+  template<class Index>
+  __host__ __device__
+  T& operator[](const Index&);
+};
+
 
 int main()
 {

    "grid_executor should have multi-agent then_execute() returning void"
  );

  std::cout << "OK" << std::endl;

  return 0;

#include <agency/cuda/grid_executor.hpp>
#include <agency/executor_traits.hpp>
#include <iostream>

struct functor_returning_int
{
  template<class... Args>
  __host__ __device__
  int operator()(Args&&...) const
  {
    return 0;
  }
};

struct functor_returning_void
{
