Я использую 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 и перешел в режим "Среда\Интеллект\Завершение" и отключил все флажки в разделе "Автоматически завершать отдельный элемент с помощью:".
Все еще происходит, есть ли что-нибудь еще, что я могу попробовать?