`push_back<vector20<...>, X>::type` on MSVC triggers static assert
- Dominant language
- C++
- Stars
- 65
- Forks
- 81
- PR merge metrics
- No merged PRs in 30d
Description
The following code is fine on GCC and Clang, but fails on MSVC and ICC.
```cpp
#include
#include
struct X;
using vec = boost::mpl::vector;
using test = boost::mpl::push_back::type;
```
https://godbolt.org/z/w-yTto
This inconsistency confuses people: 1) https://stackoverflow.com/questions/55900932/issue-with-x3-and-ms-vs2017 2) https://github.com/boostorg/spirit/issues/515
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the minimal Boost.MPL reproducer in the issue and compare its behavior on GCC, Clang, MSVC, and ICC using the linked Compiler Explorer example. Trace the push_back, X>::type instantiation and determine why the static assertion differs across compilers. Done means the reported inconsistency is resolved or its supported behavior is clearly established for the affected toolchains.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100