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

Problem with latest VS2017 update #163

Closed
Kojoley opened this issue Dec 13, 2017 · 1 comment
Closed

Problem with latest VS2017 update #163

Kojoley opened this issue Dec 13, 2017 · 1 comment

Comments

@Kojoley
Copy link
Contributor

Kojoley commented Dec 13, 2017

VS2017 version: 15.5.1
cl version: 19.12.25830.2

Fusion tests result in:

sequence\as_map.cpp(53): error C2668: 'boost::fusion::map<T,boost::fusion::pair<double,std::string>>::map': ambiguous call to overloaded function
        with
        [
            T=boost::fusion::pair<int,char>
        ]
..\..\..\boost/fusion/container/map/map.hpp(99): note: could be 'boost::fusion::map<T,boost::fusion::pair<double,std::string>>::map<boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>>,>(boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>> &&)'
        with
        [
            T=boost::fusion::pair<int,char>,
            First=double
        ]
..\..\..\boost/fusion/container/map/map.hpp(92): note: or       'boost::fusion::map<T,boost::fusion::pair<double,std::string>>::map<boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>>,>(const boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>> &)'
        with
        [
            T=boost::fusion::pair<int,char>,
            First=double
        ]
..\..\..\boost/fusion/container/map/map.hpp(86): note: or       'boost::fusion::map<T,boost::fusion::pair<double,std::string>>::map<boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>>>(Sequence &&,boost::fusion::detail::enabler_)'
        with
        [
            T=boost::fusion::pair<int,char>,
            First=double,
            Sequence=boost::fusion::vector<boost::fusion::pair<int,char>,boost::fusion::pair<double,const char (&)[4]>>
        ]
..\..\..\boost/fusion/container/map/map.hpp(79): note: or       'boost::fusion::map<T,boost::fusion::pair<double,std::string>>::map<boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>>>(Sequence &,boost::fusion::detail::enabler_)'
        with
        [
            T=boost::fusion::pair<int,char>,
            First=double,
            Sequence=boost::fusion::vector<boost::fusion::pair<int,char>,boost::fusion::pair<double,const char (&)[4]>>
        ]
..\..\..\boost/fusion/container/map/map.hpp(72): note: or       'boost::fusion::map<T,boost::fusion::pair<double,std::string>>::map<boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>>>(const Sequence &,boost::fusion::detail::enabler_)'
        with
        [
            T=boost::fusion::pair<int,char>,
            First=double,
            Sequence=boost::fusion::vector<boost::fusion::pair<int,char>,boost::fusion::pair<double,const char (&)[4]>>
        ]
sequence\as_map.cpp(53): note: while trying to match the argument list '(boost::fusion::vector<T,boost::fusion::pair<First,const char (&)[4]>>)'
        with
        [
            T=boost::fusion::pair<int,char>,
            First=double
        ]
sequence\as_map_assoc.cpp(64): error C2668: 'boost::fusion::map<T,boost::fusion::pair<char,char>>::map': ambiguous call to overloaded function
        with
        [
            T=boost::fusion::pair<int,int>
        ]
..\..\..\boost/fusion/container/map/map.hpp(99): note: could be 'boost::fusion::map<T,boost::fusion::pair<char,char>>::map<boost::fusion::set<int,char>,>(First &&)'
        with
        [
            T=boost::fusion::pair<int,int>,
            First=boost::fusion::set<int,char>
        ]
..\..\..\boost/fusion/container/map/map.hpp(92): note: or       'boost::fusion::map<T,boost::fusion::pair<char,char>>::map<boost::fusion::set<int,char>,>(const First &)'
        with
        [
            T=boost::fusion::pair<int,int>,
            First=boost::fusion::set<int,char>
        ]
..\..\..\boost/fusion/container/map/map.hpp(86): note: or       'boost::fusion::map<T,boost::fusion::pair<char,char>>::map<boost::fusion::set<int,char>>(Sequence &&,boost::fusion::detail::enabler_)'
        with
        [
            T=boost::fusion::pair<int,int>,
            Sequence=boost::fusion::set<int,char>
        ]
..\..\..\boost/fusion/container/map/map.hpp(79): note: or       'boost::fusion::map<T,boost::fusion::pair<char,char>>::map<boost::fusion::set<int,char>>(Sequence &,boost::fusion::detail::enabler_)'
        with
        [
            T=boost::fusion::pair<int,int>,
            Sequence=boost::fusion::set<int,char>
        ]
..\..\..\boost/fusion/container/map/map.hpp(72): note: or       'boost::fusion::map<T,boost::fusion::pair<char,char>>::map<boost::fusion::set<int,char>>(const Sequence &,boost::fusion::detail::enabler_)'
        with
        [
            T=boost::fusion::pair<int,int>,
            Sequence=boost::fusion::set<int,char>
        ]
sequence\as_map_assoc.cpp(64): note: while trying to match the argument list '(boost::fusion::set<int,char>)'
sequence\map_copy.cpp(45): error C2440: 'return': cannot convert from 'boost::fusion::map<boost::fusion::pair<k1,T>,boost::fusion::pair<k2,T>,boost::fusion::pair<k3,T>,boost::fusion::pair<k4,T>>' to 'boost::fusion::map<boost::fusion::pair<k1,double>,boost::fusion::pair<k2,double>,boost::fusion::pair<k3,double>,boost::fusion::pair<k4,double>>'
        with
        [
            T=int
        ]
sequence\map_copy.cpp(45): note: No constructor could take the source type, or constructor overload resolution was ambiguous
Kojoley added a commit to Kojoley/fusion that referenced this issue Dec 13, 2017
Fixes boostorg#163.

Since C++11 we can do SFINAE in template parameters. VS2017 15.5 doesn't like
the SFINAE on argument here, but do not ask me why, because I have no idea.
Kojoley added a commit to Kojoley/fusion that referenced this issue Dec 13, 2017
Fixes boostorg#163.

Since C++11 we can do SFINAE in template parameters. VS2017 15.5 doesn't like
the SFINAE on argument here, but do not ask me why, because I have no idea.
@Kojoley
Copy link
Contributor Author

Kojoley commented Dec 13, 2017

Appveyor have updated the VS2017 to 15.5.1 https://www.appveyor.com/updates/2017/12/12/ so if you trigger a new build you will get these errors.

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

1 participant