Optional template parameters

x::vipobj's first template parameter specifies the type of the very important object. x::vipobj has three optional template parameters: