Given the enum below (which compiles fine)…

Shouldn’t it be derived from long (currently commented out)? It has values with more than 32 shifts in it.

If it is indeed a long, what affect would that have on a 32 bit system?
using System;
namespace Venue.Base
{
[Flags]
public enum GroupPermissions // : long
{
None = 0,
CanViewBoard = 1 << 1,
CanViewOffline = 1 << 2,
CanViewProfiles = 1 << 3,
CanViewAvatars = 1 << 4,
CanViewSignatures = 1 << 5,
CanUseAvatars = 1 << 6,
CanUseSignatures = 1 << 7,
CanAddOwnThreads = 1 << 8,
CanEditOwnThreads = 1 << 9,
CanDeleteOwnThreads = 1 << 10,
CanRemoveOwnThreads = 1 << 11,
CanMoveOwnThreads = 1 << 12,
CanCloseOwnThreads = 1 << 13,
CanOpenOwnThreads = 1 << 14,
CanEditOthersThreads = 1 << 15,
CanDeleteOthersThreads = 1 << 16,
CanRemoveOthersThreads = 1 << 17,
CanMoveOthersThreads = 1 << 18,
CanCloseOthersThreads = 1 << 19,
CanOpenOthersThreads = 1 << 20,
CanAddOwnPosts = 1 << 21,
CanEditOwnPosts = 1 << 22,
CanDeleteOwnPosts = 1 << 23,
CanRemoveOwnPosts = 1 << 24,
CanMoveOwnPosts = 1 << 25,
CanEditOthersPosts = 1 << 26,
CanDeleteOthersPosts = 1 << 27,
CanRemoveOthersPosts = 1 << 28,
CanMoveOthersPosts = 1 << 29,
CanManageUsers = 1 << 30,
CanManagePosts = 1 << 31,
CanManageThreads = 1 << 32,
CanAdministerOptions = 1 << 33,
CanAdministerCodes = 1 << 34,
CanAdministerCategories = 1 << 35,
CanAdministerForums = 1 << 36,
CanAdministerGroups = 1 << 37,
CanAdministerMasks = 1 << 38,
CanAdministerModerators = 1 << 39,
CanAdministerUsers = 1 << 40,
All = int.MaxValue
}
}