Setting /permissive- switch on Windows causes some problems.
The code below compiles using the Microsoft Compiler Visual C++ 2017 15.8.2 both with AND without "/permissive-"
However the code fails to compile using Intel Compiler 2018 Update 3 with "/permissive-"
I have encountered many other issues when "/permissive-" is set when using the Intel Compiler.
error : identifier "silly" is undefined
1> silly tmp = something;
1> ^
1> detected during instantiation of class "CDataCacheGetFn<T1, T2, T3> [with T1=double, T2=silly, T3=double]" at line 33
1>
error : expected a ";"
1> silly tmp = something;
1> ^
1> detected during instantiation of class "CDataCacheGetFn<T1, T2, T3> [with T1=double, T2=silly, T3=double]" at line 33
template <class T1, class T2, class T3> class CDataCacheGetFn { public: T1 GetFn(const T2 &t2, const T3& t3, void *data)const; }; struct silly { }; double CDataCacheGetFn<double, silly, double>::GetFn(const silly &something, const double &f, void *)const { silly tmp = something; return 1.0; }