Templates VS2012前后的#ifdef最佳实践,而c+的VS2013最佳实践+;11支持?
基于VS版本切换某些函数声明的最佳方法是什么 上下文:我需要在linux和windows上构建,并不断遇到GCC编译良好但VS2012缺少一些c++11功能的情况。我想#ifdef出不受支持的语法,以便它可以立即在linux上使用,并在以后轻松启用VS2013支持 vs2013的默认函数模板参数等功能应该很好:Templates VS2012前后的#ifdef最佳实践,而c+的VS2013最佳实践+;11支持?,templates,visual-studio-2012,c++11,generic-programming,function-templates,Templates,Visual Studio 2012,C++11,Generic Programming,Function Templates,基于VS版本切换某些函数声明的最佳方法是什么 上下文:我需要在linux和windows上构建,并不断遇到GCC编译良好但VS2012缺少一些c++11功能的情况。我想#ifdef出不受支持的语法,以便它可以立即在linux上使用,并在以后轻松启用VS2013支持 vs2013的默认函数模板参数等功能应该很好: //语法失败;是否可以用“IfGCC或VSVERSION>XYZ”包装? 模板阻抗(T阻抗); 可能存在的重复项。另请参见。好的,您的链接回答了如何快速更新它,并给出了编译器版本的一个很
//语法失败;是否可以用“IfGCC或VSVERSION>XYZ”包装?
模板阻抗(T阻抗);
可能存在的重复项。另请参见。好的,您的链接回答了如何快速更新它,并给出了编译器版本的一个很好的摘要:_MSC_VER包含作为整数的主版本号和次版本号(例如,“1500”是版本15.00)_MSC_FULL_VER包含主版本、次版本和内部版本号作为整数(例如,“150020706”是版本15.00.20706)。
//syntax fail; can this be wrapped with "If GCC or VSVERSION > XYZ" ?
template <typename T/*=std::complex<double>*/> void setImpedance(T impedance);