rely on #pragma once in headers