OS X also needs typename to be defined within the template, that makes Windows,BSD and OS X, it's better to exclude platforms when we hit them.

Originally committed to SVN as r4920.
This commit is contained in:
Amar Takhar 2010-12-08 18:58:10 +00:00
parent 944eaa535e
commit 063cd0480d

View file

@ -260,12 +260,9 @@ class Signal<void> : public detail::SignalBaseImpl<std::tr1::function<void ()> >
using super::slots; using super::slots;
public: public:
Signal() { } Signal() { }
// Work around compilters that can't tell this is a template context due to it
#if defined(_WIN32) || defined(__FreeBSD__) // being fully specified, making typename invalid here.
// MSVC incorrectly considers this not a template context due to it being fully
// specified, making typename invalid here
#define typename #define typename
#endif
/// @brief Trigger this signal /// @brief Trigger this signal
/// ///