Making it trivial works for me. It's basically giving us a simple/standard way to access the pointer in the block and absolutely nothing else as written. There isn't much value add in the NO_COPY(TBlock);