Проверить, существует ли поле в структуре

Возможный дубликат:
Как определить, существует ли конкретная переменная-член в классе?

У меня есть шаблонная функция, которая принимает структуру как параметр. Если структура содержит поле "id", функция может продолжаться, например:

template<typename PointT>
void doSomething(PointT point) {
  if (containsField(point, "id")) {
    //do stuff
  }
}

Я знаю специализацию, к сожалению, PointT может быть любым типом с идентификатором поля Я считаю, что я видел нечто подобное в boost ao, но больше не могу его найти

любые идеи?