martinmoene / lest

A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant)
Boost Software License 1.0
390 stars 45 forks source link

Brace-initialisation in MIL not implemented in VS2013, Update 3 #7

Closed martinmoene closed 10 years ago

martinmoene commented 10 years ago

Georgy Klugerman reported:

I got following result during lest compilation under vs2013 UPDATE3:

D:\Software\lest-master\lest.hpp(72): error C2797: 'lest::location::file': list initialization inside member initializer list or non-static data member initializer is not implemented
D:\Software\lest-master\lest.hpp(80): error C2797: 'lest::comment::text': list initialization inside member initializer list or non-static data member initializer is not implemented
D:\Software\lest-master\lest.hpp(92): error C2797: 'lest::message::kind': list initialization inside member initializer list or non-static data member initializer is not implemented

See MS comment: http://msdn.microsoft.com/en-us/library/dn793970.aspx

martinmoene commented 10 years ago

Class member initialisation of file, text and kind are valid forms of C++11 brace initialisation.

Replacing the relevant initialsations to use parentheses will solve the problem [1]. However I will make no such changes to lest here myself.

Thanks to @jwakely (via accu-general mailing list [2]) and Niels Dekker for [1].

[1] https://connect.microsoft.com/VisualStudio/feedbackdetail/view/917150 [2] http://accu.org/index.php/mailinglists#list-programming

martinmoene commented 10 years ago

On C2797: Visual C++ Team Blog. The Future of Non-Static Data Member Initialization. 19 Aug 2014.