Чтобы сделать мою программу Visual C++ более надежной, у меня возникает соблазн вставить проверки того, что GUID
переменные содержат допустимые GUID версии 4 ( и не остаются неинициализированными):
GUID guid;
UuidCreate( &guid );
// many lines of code later...
// the following assert should not fire for valid version 4 GUIDs
int data3 = guid.Data3;
assert( ( data3 >> 12 ) == 4 );
Я полностью уверен, что все идентификаторы GUID либо обычно поступают из функции UuidCreate()
, либо представляют собой неинициализированные переменные (и последнее — это то, что я хотел бы диагностировать с помощью этих проверок). Меня беспокоит только то, что Microsoft может внезапно изменить реализацию GUID в будущих версиях Windows.
Какие еще факторы я должен учитывать, чтобы решить, не повредят ли такие проверки? Также насколько вероятно, что реализация GUID изменится в будущих версиях Windows?