有益なバグ?@VC++7.1

つーか,よくよく見たらこれVC++7.1のバグやんw
#あ〜,SFINAEとsizeofの組み合わせっつー言語規格で明確に言及されていない状況で戯れているコードだから「バグ」って表現はまずいな.あれだ.鼻から悪魔が出てきてる状態って表現すれば良いのか.
注意:以下のコードはVC++7.1のみで意味があります.

#include <vector>
#include <iostream>

template<class T, T *p = 0, int i = sizeof(p->begin(), 0)>
struct disc
{
  static const int value = i;
};

template<class T>
typename char (&test(T const volatile *))[disc<T>::value];

int main()
{
  std::cout << sizeof(test(static_cast<std::vector<int> *>(0))) << std::endl;
  std::cout << sizeof(test(static_cast<int *>(0))) << std::endl;
}