Я использую Visual Studio 2010 и ReSharper 5.
Я определяю это в верхней части файла .cs.
#if X86
using size_t = System.Int32;
#else
using size_t = System.Int64;
#endif
Тогда я могу использовать size_t и знать, что это собственное целое число, 32 бита, если он скомпилирован как 32-битная сборка, и 64 бита, если он скомпилирован как 64-битная сборка. (для любопытных альтернативы всегда используют Int64 или переход во время выполнения на IntPtr.Size == 4 и имеют две версии кода. Я предпочитаю это решение.)
Однако, если я наберу size_t и нажму пробел, он будет автоматически преобразован в Int64 (или Int32, если определен X86). Очевидно, что это нежелательно.
Я вошел в параметры ReSharper и перешел к среде Environment \ Intellisence \ Completion и отключил все флажки в разделе «Автоматически завершать отдельный элемент с помощью:».
Это все еще происходит, я могу попробовать еще что-нибудь?