c++14提供了变量模板,这些模板在visual-studio-2017中工作正常,但在 lambdas 中它们似乎分崩离析。例如:
template <typename T>
const auto PI = std::acos(static_cast<T>(-1));
int main() {
auto func = []() { cout << PI<float> << endl; };
func();
}
在 gcc 6.3 上,此输出:
3.14159
在 Visual Studio 2017 上,此输出:
0.0