1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Copyright (C) 2011 John Maddock
- // Use, modification and distribution are subject to the
- // Boost Software License, Version 1.0. (See accompanying file
- // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- // See http://www.boost.org/libs/config for most recent version.
- // MACRO: BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
- // TITLE: C++0x unified initialization syntax unavailable
- // DESCRIPTION: The compiler does not support C++0x unified initialization syntax: see http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization
- #include <string>
- namespace boost_no_cxx11_unified_initialization_syntax {
- struct BasicStruct
- {
- int x;
- double y;
- };
- struct AltStruct
- {
- public:
- AltStruct(int x, double y) : x_{x}, y_{y} {}
- int X() const { return x_; }
- double Y() const { return y_; }
- private:
- int x_;
- double y_;
- };
- struct IdString
- {
- std::string name;
- int identifier;
- bool operator == (const IdString& other)
- {
- return identifier == other.identifier && name == other.name;
- }
- };
- IdString get_string()
- {
- return {"SomeName", 4}; //Note the lack of explicit type.
- }
- int test()
- {
- BasicStruct var1{5, 3.2};
- AltStruct var2{2, 4.3};
- (void) var1;
- (void) var2;
- IdString id{"SomeName", 4};
- return id == get_string() ? 0 : 1;
- }
- }
|