Usando el operador sizeof en una estructura typedef-ed

Esto podría ser algo demasiado obvio. Sin embargo, no pude encontrar la respuesta específica a pesar de que muchos hilos de stackoverflow hablan sobre diferentes aspectos de esto.

typedef struct _tmp {
   unsigned int a;
   unsigned int b;
} tmp;

int main()
{
    int c=10;
    if (c <= sizeof tmp) {
       printf("less\n");
    } else {
       printf("more\n");
    }
    return 0;
}

Yo compilo este prog como

g++ -lstdc++ a.cpp

Me sale un error

expected primary-expression before ‘)’ token

Creo que me falta algo muy obvio y directo. Pero parece que no puede señalarlo: - /

¡Gracias!