Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Emphasizes the call site of an event.

__raise method-declarator;

From managed code, an event can only be raised from within the class where it is defined. See event (Visual C++) for more information.

The keyword __raise causes an error to be emitted if you call a non-event.


A templated class or struct cannot contain events.

// EventHandlingRef_raise.cpp
struct E {
   __event void func1();
   void func1(int) {}

   void func2() {}

   void b() {
      __raise func1();
      __raise func1(1);  // C3745: 'int Event::bar(int)': 
                         // only an event can be 'raised'
      __raise func2();   // C3745

int main() {
   E e;
   __raise e.func1();
   __raise e.func1(1);  // C3745
   __raise e.func2();   // C3745
© 2015 Microsoft