Warum ist dieses Konzept wahr, obwohl der zur Überprüfung verwendete Ausdruck nicht kompiliert werden kann?C++

Programme in C++. Entwicklerforum
Anonymous
 Warum ist dieses Konzept wahr, obwohl der zur Überprüfung verwendete Ausdruck nicht kompiliert werden kann?

Post by Anonymous »

Dies wird nicht kompiliert:

Code: Select all

std::get(std::tuple{});
Dies wird jedoch als wahr ausgewertet.

Code: Select all

template
concept HasV = requires () {
std::get(std::tuple{});
};
Nach meinem Verständnis prüfen Konzepte wie das obige, ob der Code kompilierbar ist, und werten ihn als falsch aus, wenn dies nicht der Fall ist. Dies scheint hier jedoch nicht der Fall zu sein.
Live-Demo hier: https://godbolt.org/z/9rfrKo7aa

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post