Run Code
|
API
|
Code Wall
|
Users
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
function pointer overload
//g++ 4.9.3 #include <iostream> template <typename... Args> struct SNonConstOverload { template <typename R, typename T> static void resolve(R(T::*ptr)(Args...)) { std::cout << "resolve(R(T::*ptr)(Args...))" << std::endl; } }; template <typename... Args> struct SConstOverload { template <typename R, typename T> static void resolve(R(T::*ptr)(Args...) const) { std::cout << "resolve(R(T::*ptr)(Args...) const)" << std::endl; } }; template <typename... Args> struct SOverload : SConstOverload<Args...>, SNonConstOverload < Args... > { using SConstOverload<Args...>::resolve; using SNonConstOverload<Args...>::resolve; template <typename R> static void resolve(R(*ptr)(Args...)) { std::cout << "resolve(R(*ptr)(Args...))" << std::endl; } }; struct FHolder { int fabo( int i) const { return i ? i + fabo(i-1): 0; } virtual void set(int i) { mIndex = i; } static void print() { std::cout << "FHolder::print()" << std::endl; } private: int mIndex = 0; }; int main() { SOverload<int>::resolve(&FHolder::fabo); SOverload<int>::resolve(&FHolder::set); SOverload<>::resolve(&FHolder::print); }
run
|
edit
|
history
|
help
0
Please
log in
to post a comment.
CPP - Pointers - Ex.3
BridgeEdge
max_recursion
fibonacci
Display all prime numbers upto N without sieve
myfirst.cpp
Sort row sorted matrix
tree
NameTempSpecial
GenericPacker
Please log in to post a comment.