A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/llvm/llvm-project/issues/56439 below:

Different rules for instantiation of dynamic exception specifications in C++03 and C++11 modes · Issue #56439 · llvm/llvm-project · GitHub

Clang currently (since at least 3.1) accepts this program (made well-formed via CWG1330) in C++11 mode but rejects it in C++03 mode.

Godbolt links: acception, rejection.

template<class X>
struct Trans {
    typedef int type;
};

template<class X>
struct Trans<X*> {
    typedef void type;
};

template<class X>
struct Bar {
    void fun() const throw(typename Trans<X>::type);
};

int main()
{
    Bar<int*> bar = Bar<int*>();
}

It's unclear to me why clang doesn't apply the resolution of CWG1330 to C++03 mode.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4