title: how to copy a pointer's value to an simple variable inside a constexpr constructor
body: <p>i try to make this code work. I want make the constructor  accept a pointer to function, then copy the value of the pointer to f and then xor with 1234. This  normally should run on compile time. Then when i want to get the function pointer it will call the un_xor() so i can get the original pointer.</p>
  <pre><code>typedef void (*func)();
  
  class xorfunc
  {
  public:
      __int64 f;
      inline constexpr xorfunc(func function)
          : f(0)
      {
          f = (__int64)function;
          f ^= 1234;
      }
  
      const func un_xor() const {
          return (func)(f ^ 1234);
      }
  
  };
  
  #define OCB(my_func) []{ constexpr xorfunc expr(my_func); return expr; }().decrypt()
  
  //and then i call it like this
  void fun1() 
  {
  }
  
  func ptr = OCB(fun1);
  
  </code></pre>
  <p>with this code i get these errors:
  'expression did not evaluate to a constant' and 'expression must have a constant value'</p>
  <p>what is the problem with this?
  can anyone help me make it work?</p>