프로그래밍 언어/C++
semiregular concept
opencpp
2024. 2. 19. 19:35
반응형

[[semiregular]] concept 개요
copyable concept과 default_initializable concept를 만족하면 semiregular concept를 만족한다.
- [[copyable]] concept
- T a(b); // copy constructor
- T a = b; // copy constructor
- a = b; // assignment
- [[default_initializable]] concept
- T a; // default initialization
- T{}; // direct-list initialization
- T(); // value initialization == [[std::constructible_from<T>]]import std;
template<class T>
void is_check() {
std::println("\nTYPE NAME: '{}'", typeid(T).name());
std::println("copyable concept: {}", std::copyable<T>);
std::println("default_initializable concept: {}", std::default_initializable<T>);
std::println("semiregular concept: {}", std::semiregular<T>);
}
int main(int argc, char* argv[]) {
is_check<int>();
is_check<std::thread>();
return 0;
}
[출력 결과]
TYPE NAME: 'int'
copyable concept: true
default_initializable concept: true
semiregular concept: true
TYPE NAME: 'class std::thread'
copyable concept: false
default_initializable concept: true
semiregular concept: false728x90
반응형