diff --git a/src/libs/utils/function.cpp b/src/libs/utils/function.cpp index 68370976d87..45f02f776df 100644 --- a/src/libs/utils/function.cpp +++ b/src/libs/utils/function.cpp @@ -41,7 +41,7 @@ void functionUser(Utils::function generator, Utils::function c struct GenFunctor { - int operator()() { return 29; } + int operator()() const { return 29; } }; struct ConsumerFunctor @@ -49,6 +49,13 @@ struct ConsumerFunctor void operator()(int) {} }; +struct ConsumerFunctor2 +{ + ConsumerFunctor2() : i(0) { } + int i; + void operator()(int j) { i = j; } +}; + int generatorF() { return 42; @@ -64,6 +71,9 @@ void test() { functionUser(GenFunctor(), ConsumerFunctor()); functionUser(&generatorF, &consumerF); + ConsumerFunctor2 f2; + GenFunctor g2; + functionUser(Utils::cref(g2), Utils::ref(f2)); } } // end namespace diff --git a/src/libs/utils/function.h b/src/libs/utils/function.h index d6dbc2f9999..52938f385e4 100644 --- a/src/libs/utils/function.h +++ b/src/libs/utils/function.h @@ -39,9 +39,9 @@ # ifdef __GNUC__ # include # endif -namespace Utils { using std::tr1::function; } +namespace Utils { using std::tr1::function; using std::tr1::ref; using std::tr1::cref; } #else -namespace Utils { using std::function; } +namespace Utils { using std::function; using std::ref; using std::cref; } #endif #endif // QTC_FUNCTION_H