[Config] Need more macros for VS2013

I tried to use Visual Studio 2013 for the first time. I added the version of Boost 1.55 from NuGet. I've been adding macros from Boost.Config to help, but we need some more: 1. VS2013 doesn't support the "alignof" operator. 2. VS2013 doesn't support in-class class-static constants besides integers and enumerations. In my case, I had an array of size_t. C++11 is supposed to allow any literal (including arrays thereof) type. I had some other weird errors that are show-stopping. 1. I guess VS2013 uses smart iterators for std::array by default/debugging-mode. They don't convert to a pointer-to-element-type. I changed one function to use a pair of const_iterator, but a different function gave an internal error (C1001) when I tried to fix that one. 2. Boost.Test macros are complaining all over about mismatched arguments. When using MinGW, I used Boost from the trunk, because the release branch wouldn't compile. I'm guess that the NuGet version of Boost grabs from release, therefore I get the Boost.Test problems back. How do I use a copy of the Boost trunk in VS 2013 Express? (I got a Subversion download of both branches.) Daryle W.

On Sat, Nov 23, 2013 at 6:22 AM, Daryle Walker
I tried to use Visual Studio 2013 for the first time. I added the version of Boost 1.55 from NuGet. I've been adding macros from Boost.Config to help, but we need some more:
1. VS2013 doesn't support the "alignof" operator. 2. VS2013 doesn't support in-class class-static constants besides integers and enumerations. In my case, I had an array of size_t. C++11 is supposed to allow any literal (including arrays thereof) type.
On top of the VS2013 RTM config needs, Microsoft has also released a November 2013 CTP, with a dozen C++11 and C++14 features now implemented. Some of these are partial implementations - constexpr doesn't support member functions and noexcept doesn't support the conditional form. While no one in their right mind would use a CTP release in production code, it would be nice to support the CTP as an option for those who want to experiment and/or report bugs to Microsoft. I'm one of the Boost.config maintainers who has worked on VC++ macros, but I'm busy with the Git conversion for awhile. So if you or anyone else wants to supply patches (or better yet, GitHub pull requests), feel free to do so. --Beman

Hi, i just wondered why compilation was done with wchar_t as native type, rather than as configured a typdef. I then had a look at the compile response files and recognized, that the configuration of the compileflags was not read from the user-config.jam in 1.55 --- same file as used in 1.54. As a workaround toolset configurations maybe modified (in may case msvc.jam, msvc.py). Did anybody had the same problems ? Greetz. relevant configuration line from user-config.jam # Configure specific msvc version (searched for in standard locations and PATH). using msvc : 8.0 : <compileflags>-Zc:wchar_t- <compileflags>-Zi <compileflags>-D_SCL_SECURE_NO_WARNINGS <compileflags>-DBOOST_THREAD_PROVIDES_BASIC_THREAD_ID ;

On 23 Nov 2013 at 8:19, Beman Dawes wrote:
On top of the VS2013 RTM config needs, Microsoft has also released a November 2013 CTP, with a dozen C++11 and C++14 features now implemented. Some of these are partial implementations - constexpr doesn't support member functions and noexcept doesn't support the conditional form. While no one in their right mind would use a CTP release in production code, it would be nice to support the CTP as an option for those who want to experiment and/or report bugs to Microsoft.
I'm one of the Boost.config maintainers who has worked on VC++ macros, but I'm busy with the Git conversion for awhile. So if you or anyone else wants to supply patches (or better yet, GitHub pull requests), feel free to do so.
Useful information for these extra VS macros can be found in this graphic: http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-bl ogs-components-weblogfiles/00-00-00-65-69/0638.Updated-Conformance-Map .png Each of the missing C++98 (yes, some of these are still missing), C++11 and C++14 features in Visual Studio are listed, along with when in priority order they will be implemented. It would be a short step from this list to a suitable list of Boost config macro names. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/

[Daryle Walker]
I guess VS2013 uses smart iterators for std::array by default/debugging-mode. They don't convert to a pointer-to-element-type.
Yep. Our contiguous iterators (vector/array/string) are always of class type, as permitted by the Standard.
I changed one function to use a pair of const_iterator, but a different function gave an internal error (C1001) when I tried to fix that one.
Internal Compiler Errors are always compiler bugs. If you encounter an ICE, please capture a preprocessed file immediately, and verify that the preprocessed file also triggers the ICE. If you keep messing around with your code, the ICE may vanish, and you may not be able to figure out how to get it back. You should report compiler bugs through Microsoft Connect, but if that's too much work, as a special service to Boost developers, I will accept bug reports through E-mail and file them in our internal database. (Please compress preprocessed files with 7z, or at least bz2.) As usual, we need a self-contained repro and the compiler command line for it. It also helps to know the compiler version you're running, and the exact content of any errors you're seeing. STL
participants (5)
-
Beman Dawes
-
Daryle Walker
-
Ingo Loehken
-
Niall Douglas
-
Stephan T. Lavavej