Solved Qt Creator and C++14 compatibility on OS X
-
Hi guys. I'm trying to make this:
void throw_exception(const auto& obj, const QString& errorMsg) { // .. here my code }
as you can see, I'm using auto as parameter of my function, but this feature is available in c++14. To enable c++14 compilation I have added this 2 lines t my .pro file:
CONFIG += c++11 QMAKE_CXXFLAGS += -std=c++1y
CONFIG += c+=11 and not c++14 because for some reason qt creator doesn't understand CONFIG+= c++14.
well... this doesn't work. The error which I got is simple:../untitled/mainwindow.h:6:28: error: 'auto' not allowed in function prototype void throw_exception(const auto& obj, const QString& errorMsg) ^~~~
so, that told me that c++14 configuration is not available, only c++11 is available...
How can I fix this ?regards
-
I don't think your function definition is legal C++. You probably want something like:
template<typename T> void throw_exception(T const& obj, QString const& errorMsg) { /// ... }
AFAIK only abbreviated generic lambdas allow
auto
type deduction of function arguments. -
Thanks.. c++14 has support for auto type in parameters but just in lambda functions... not for free functions, regards... my mistake