Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICE in view.cache1 with VS2019 16.8.3 (and VS2019 16.9.0 Preview 2.0) (only in module interface units) #1595

Open
szilardszaloki opened this issue Dec 30, 2020 · 3 comments

Comments

@szilardszaloki
Copy link

Hi there,
I don't know if this is the right place to report this, but here it goes:
ice.ixx:

module;
#include <string>
#include <range/v3/view/cache1.hpp>
#include <range/v3/view/iota.hpp>
#include <range/v3/view/join.hpp>
#include <range/v3/view/transform.hpp>
export module ice;

export void Ice() {
    auto rng =
          ranges::views::iota(1, 4)
        | ranges::views::transform([](int const i) { return std::string(i, 'a' + i); })
        | ranges::views::cache1
      //| ranges::views::join('-')
    ;
}

main.cpp:

import ice;

int main(int const, char const* const []) {
    Ice();
    return 0;
}

If you comment out | ranges::views::cache1, then it just goes away.
Let me know if I should submit this problem for Visual Studio instead.

@JohelEGP
Copy link
Contributor

All ICEs are compiler bugs, so yes. Instead of an ICE, it should either work or give you an error. In case of an error, you can come back here.

@szilardszaloki
Copy link
Author

Alright, thanks! I saw #1222, so I wasn't sure.

@szilardszaloki
Copy link
Author

In case anyone is interested: the Visual Studio ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants