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

Boost failed with error C2892 when build with MSVC on windows #204

Open
QuellaZhang opened this issue Sep 11, 2018 · 5 comments
Open

Boost failed with error C2892 when build with MSVC on windows #204

QuellaZhang opened this issue Sep 11, 2018 · 5 comments

Comments

@QuellaZhang
Copy link

Hi All,

We tried to build and run hof test for Boost with VS2017 Update 7 on Windows. It failed to build due to the error C2892. Could you please help take a look at this? Thank you!

Reproduce steps:

  1. git clone -c core.autocrlf=true --recursive https://github.com/boostorg/boost.git D:\Boost\src
  2. open a VS 2015 x86 command prompt and browse to D:\Boost\src
  3. .\bootstrap
  4. .\b2 headers variant=release --build-dir=..\out\x86rel address-model=32
  5. .\b2 variant=release --build-dir=..\out\x86rel address-model=32
  6. .\b2 -j4 variant=release --build-dir=..\out\x86rel libs\hof\test

Failures:
libs\hof\test\lift.cpp(42): error C2892: a template cannot be a member of a local class
libs\hof\test\lift.cpp(45): error C2892: a template cannot be a member of a local class
libs\hof\test\lift.cpp(46): error C2892: a template cannot be a member of a local class
libs\hof\test\lift.cpp(49): error C2892: a template cannot be a member of a local class
libs\hof\test\lift.cpp(50): error C2892: a template cannot be a member of a local class

@pfultz2
Copy link
Collaborator

pfultz2 commented Sep 11, 2018

So it looks like the workaround for MSVC no longer works. You can try disabling the workaround here by changing #if defined (_MSC_VER) to #if 0. If that works then the workaround is no longer needed for VS2017 Update 7, and we probably should update the #if to check the MSVC version.

I dont have access to windows right now to try this locally.

@QuellaZhang
Copy link
Author

QuellaZhang commented Sep 12, 2018

Thanks @pfultz2. I tried what you said and it works well on default mode. Maybe you can consider updating this.

@pfultz2
Copy link
Collaborator

pfultz2 commented Sep 20, 2018

What is _MSC_VER set to for VS2017 Update 7?

@erikzenker
Copy link

erikzenker commented Jan 10, 2021

You can use the compiler explorer to reproduce the error: https://godbolt.org/z/fEaqWx

@erikzenker
Copy link

@pfultz2 I can confirm that the workaround for MSVC is not necessary anymore (see here https://godbolt.org/z/W8oEPG). So we should check the version of the MSVC.

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

3 participants