std::experimental::nonesuch
From cppreference.com
 
 
 < cpp | experimental 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Experimental 
 Filesystem library (filesystem TS)
 Library fundamentals (library fundamentals TS)
 Library fundamentals 2 (library fundamentals TS v2)
 Library fundamentals 3 (library fundamentals TS v3)
 Extensions for parallelism (parallelism TS)
 Extensions for parallelism 2 (parallelism TS v2)
 Extensions for concurrency (concurrency TS)
 Extensions for concurrency 2 (concurrency TS v2)
 Concepts (concepts TS)
 Ranges (ranges TS)
 Reflection (reflection TS)
 Mathematical special functions (special functions TR)
Defined in header 
 
 
<experimental/type_traits> 
 struct nonesuch {
 
 (library fundamentals TS v2) 
    ~nonesuch() = delete;
    nonesuch(nonesuch const&) = delete;
    void operator=(nonesuch const&) = delete;
std::experimental::nonesuch is a class type used by std::experimental::detected_t to indicate detection failure. 
nonesuch has no default constructor or initializer-list constructor, and is not an aggregate.
[edit] Notes
nonesuch cannot be constructed, destroyed, or copied.
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior | 
|---|---|---|---|
| LWG 2960 | LFTSv2 | nonesuch may be an aggregate and has an implicit conversion sequence from {} 
 | 
made non-aggregate and removed ICS |