[flang][msvc] Avoid templated initializer list initialization of vector. NFC.
authorMichael Kruse <llvm-project@meinersbur.de>
Tue, 29 Sep 2020 16:37:35 +0000 (11:37 -0500)
committerMichael Kruse <llvm-project@meinersbur.de>
Tue, 29 Sep 2020 16:40:42 +0000 (11:40 -0500)
commitd2d7a44facd2dc895d378f19233837147f587b6d
tree0a1e28ef39c4f37fdcdf046c5c8cff0f030558d9
parent7bed95a856f1e0146e838e7575677159f42f3bf7
[flang][msvc] Avoid templated initializer list initialization of vector. NFC.

The Microsoft compiler emits an error when populating the vector with a single element of a templated argument using the brace syntax. The error is:
```
constant.h(102,1): error C2664: 'std::vector<Fortran::evaluate::value::Complex<...>, ...>::vector(std::initializer_list<_Ty>,const _Alloc &)': cannot convert argument 1 from 'initializer list' to 'std::initializer_list<_Ty>'
```
To work around this error, we replace the templated constructor with one for the expected type. Conversion to the element type has to be done by the caller.

This patch is part of the series to make flang compilable with MS Visual Studio <http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html>.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D88163
flang/include/flang/Evaluate/constant.h