__gloabal__ functions inside a class

Can global function be member of a class?

The CUDA programming guide only says (section D.2.5.2) that global functions cannot be static members. However, when I try non-static global function, I get “illegal combination of memory qualifiers” error (CUDA 4.0 RC2).

class A

{

public:

__global__ void ker(int n, float* a, float* b);

};

__global__

void A::ker(int n, float* a, float* b)

{

    int t = blockIdx.x * blockDim.x + threadIdx.x;

    if ( t < n ) a[t] += b[t];

}