forked from boostorg/fusion
Fix sprious compile error on VS2015 Preview.
MSVC 2015 Preview will treat unary-ctor call as a variable declaration even if member call follows, which member has the same name with any other class (i.e. there are no relations between the member and such class). This issue already reported at [1]. 1. https://connect.microsoft.com/VisualStudio/feedback/details/1037783/unary-ctor-call-v-s-variable-decl struct foo { foo(int) {} void set() {} }; struct set; int main() { int i; foo(i).set(); // VS2015 try to decl `i` here and conflict with above. }
This commit is contained in:
@ -235,14 +235,16 @@ namespace boost { namespace fusion
|
||||
template <typename Stream, typename Char, typename Traits> \
|
||||
Stream& operator>>(Stream& s, const name##_type<Char,Traits>& m) \
|
||||
{ \
|
||||
string_ios_manip<name##_tag, Stream>(s).set(m.data); \
|
||||
string_ios_manip<name##_tag, Stream> manip(s); \
|
||||
manip.set(m.data); \
|
||||
return s; \
|
||||
} \
|
||||
\
|
||||
template <typename Stream, typename Char, typename Traits> \
|
||||
Stream& operator<<(Stream& s, const name##_type<Char,Traits>& m) \
|
||||
{ \
|
||||
string_ios_manip<name##_tag, Stream>(s).set(m.data); \
|
||||
string_ios_manip<name##_tag, Stream> manip(s); \
|
||||
manip.set(m.data); \
|
||||
return s; \
|
||||
} \
|
||||
} \
|
||||
|
Reference in New Issue
Block a user