C1398: Pointer to member offset does not fit into range of given type (option -Tpmo)

[ERROR]

Description

An option -Tpmo is provided by the compiler to let the user specify the pointer to member offset value size. Letting the user specify the size of the offset value can save memory space. But one can imagine that the specified size is too short, that is the aim of this message.

Example
  class A{

  
  public:

  
    long a[33];

  
    int b;

  
  };

  
  void main (void){

  
    A myA;

  
    int A::*pmi;

  
    

  
    pmi = &A::b;

  
    myA.*pmi = 5;

  
  }

  
  If the previous example is compiled using the option  \c 
  -Tpmo1 then the maximal value allowed for offset is (127) 
  and a real value of offset is (4*33)=132.

  
Tips

Specify a larger size for the offset value: -Tpmo2.

Seealso