templatify different methods with different clCreateBuffer flags