MatchEventInMemberFunction
C++ Build Insights SDK'sı Visual Studio 2017 ve sonraki sürümlerle uyumludur. Bu sürümlerin belgelerini görmek için bu makalenin Visual Studio Sürüm seçici denetimini Visual Studio 2017 veya üzeri olarak ayarlayın. Bu sayfadaki içindekiler tablosunun en üstünde bulunur.
MatchEventInMemberFunction
işlevi, bir olayı üye işlevinin ilk parametresi tarafından açıklanan türle eşleştirmek için kullanılır. Eşleşen olay, daha fazla işlem için üye işlevine iletilir.
Sözdizimi
template <
typename TInterface,
typename TReturn,
typename TEvent,
typename... TExtraParams,
typename... TExtraArgs>
bool MatchEventInMemberFunction(
const RawEvent& event,
TInterface* objectPtr,
TReturn (TInterface::* memberFunc)(TEvent, TExtraParams...),
TExtraArgs&&... extraArgs);
Parametreler
TInterface
Üye işlevini içeren tür.
TReturn
Üye işlevinin dönüş türü.
TEvent
Eşleşecek olayın türü.
TExtraParams
Üye işlevi tarafından kabul edilen ek parametrelerin türleri ve eşleşecek olay türü.
TExtraArgs
öğesine geçirilen MatchEventInMemberFunction
ek bağımsız değişkenlerin türleri.
event
TEvent tarafından açıklanan olay türüyle eşleşecek olay.
objectPtr
memberFunc öğesinin çağrıldığı nesnenin işaretçisi.
memberFunc
Eşleşecek olay türünü açıklayan üye işlevi.
extraArgs
Olay türü parametresiyle birlikte memberFunc'a mükemmel iletilen bağımsız değişkenler.
Dönüş Değeri
bool
Eşleştirmenin başarılı olduğu veya false
başka bir şekilde olduğu bir değertrue
.
Açıklamalar
TEvent parametresi için kullanılacak olay türü, yakalama sınıfları listesinden seçilebilir. Olayları ve bunları eşleştirmek için kullanabileceğiniz yakalama sınıflarının listesi için olay tablosuna bakın.
Örnek
void MyClass::Foo1(Function f) {}
void MyClass::Foo2(Compiler cl) {}
void MyClass::OnStartActivity(const EventStack& eventStack)
{
// Let's assume eventStack contains:
// [Compiler, BackEndPass, C2DLL, CodeGeneration, Thread, Function]
auto& functionEvent = eventStack.Back(); // The Function event
bool b1 = MatchEventInMemberFunction(
functionEvent, this, &MyClass::Foo1);
bool b2 = MatchEventInMemberFunction(
functionEvent, this, &MyClass::Foo2);
// b1: true because the first parameter of Foo1 is Function.
// b2: false because the first parameter of Foo2 isn't Function.
}