«c++11» 태그된 질문

C ++ 11로 컴파일해야하는 코드에이 태그를 사용하십시오 (C ++ 14 이상에서 도입 된 기능을 사용하지 않음).

4
템플릿 유형의 올바른 생성자를 호출하는 방법은 무엇입니까?
다음 코드에서 주석 처리 된 줄을 바로 위의 줄과 동일한 방식으로 작동하게하려면 어떻게해야합니까? 적절한 코드 생성자를 호출하는 일반 코드로 만들고 싶습니다 Type. #include <string> #include <iostream> template <typename Type> struct Class { Type data; Class(Type data) : data(data) { } }; int main() { Class<std::string> a = std::string("abc"); // Class<std::string> …

4
연속 열거 형 C ++ 11
열거 형이 연속적 인 경우 C ++ 11을 확인하는 방법이 있습니까? 열거 형 값을 제공하지 않는 것이 유효합니다. C ++ 14, C ++ 17 또는 C ++ 20에 유형 특성과 같은 기능이 열거 형이 연속적인지 확인할 수 있습니까? 이것은 static_assert에서 사용됩니다. 작은 예는 다음과 같습니다. enum class Types_Discontinuous { A …
17 c++  c++11  c++14  c++17  c++20 

2
이것은 오래된 C ++ 스타일 생성자입니까?
여기에 C ++ 코드가 있습니다. 이 예제에서 많은 코드 블록은 생성자 호출처럼 보입니다. 불행히도, 블록 코드 # 3은 그렇지 않습니다 ( https://godbolt.org/z/q3rsxn 및 https://cppinsights.io를 사용하여 확인할 수 있음 ). 필자는 구식 C ++ 표기법이며 {} (cf # 4)를 사용하여 새로운 C ++ 11 구성 표기법의 도입을 설명 할 수 있다고 …
17 c++  c++11 

3
다양한 템플릿 : 그룹에서 인수 펼치기
두 가지 인수를 취하는 함수가 있습니다. template <typename T1, typename T2> void foo(T1 arg1, T2 arg2) { std::cout << arg1 << " + " << arg2 << '\n'; } 그리고 인수를 쌍으로 전달 해야하는 가변적 인 것 : template <typename... Args> void bar(Args&&... args) { static_assert(sizeof...(Args) % 2 == 0); …

2
C ++ 20 이전에 std :: swap 표시된 constexpr이 아닌 이유는 무엇입니까?
C ++ 20, std::swapa가됩니다 constexpr기능. 나는 표준 라이브러리가 사물을 표시하는 데 실제로 언어보다 뒤떨어져 있음을 알고 constexpr있지만 2017 년 <algorithm>에는 다른 것들과 마찬가지로 거의 constexpr이었습니다. 그러나 std::swap그렇지 않았습니다. 나는 그 표시를 막는 이상한 언어 결함이 있다는 것을 모호하게 기억하지만 세부 사항은 잊어 버립니다. 누군가 간결하고 명확하게 설명 할 수 있습니까? …

3
두 범위 내에서 내림차순으로 벡터 정렬
정수 벡터가 있다고 가정 해보십시오. std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); 그런 다음 내림차순으로 정렬합니다. sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); 이것은 다음을 생성합니다. 14 13 12 11 10 9 8 7 6 5 4 3 …

1
요소를 완벽하게 전달하여 std :: vector를 목록 초기화 할 수 있습니까?
std :: vector의 집계 목록 초기화는 이동 이 더 적합 할 때 복사 초기화를 수행 한다는 것을 알았습니다 . 동시에 여러 emplace_backs가 원하는 것을 수행합니다. 나는 템플릿 함수를 작성하는이 불완전한 해결책을 생각 해낼 수 있었다 init_emplace_vector. 그러나 명시 적이 지 않은 단일 값 생성자에 대해서만 최적입니다 . template <typename T, …

3
왜 배열의 차원이 그 유형의 일부입니까?
C ++ Primer 책을 읽는 동안 "어레이의 요소 수는 배열 유형의 일부입니다."라는 문장을 보았습니다. 그래서 다음 코드를 사용하여 찾고 싶었습니다. #include<iostream> int main() { char Array1[]{'H', 'e', 'l', 'p'}; char Array2[]{'P', 'l', 'e', 'a', 's', 'e'}; std::cout<<typeid(Array1).name()<<std::endl; //prints A4_c std::cout<<typeid(Array2).name()<<std::endl; //prints A6_c return 0; } 그리고 흥미롭게도 두 배열에서 typeid의 …
14 c++  arrays  c++11 

3
함수가 정의 된 유형에 대해서만 함수 템플릿 내에서 함수 실행
입력 할 때 다양한 유형을 취하는 함수 템플릿이 있습니다. 이러한 유형 중 하나만 getInt()기능이 있습니다. 따라서 코드가 해당 유형에 대해서만 함수를 실행하기를 원합니다. 해결책을 제안하십시오. 감사 #include <type_traits> #include <typeinfo> class X { public: int getInt(){ return 9; } }; class Y{ }; template<typename T> void f(T& v){ // error: …

4
cppreference에서 완화 된 순서에 대한 설명이 잘못 되었습니까?
cppreference.com 의 설명서std::memory_order 에는 완화 된 주문의 예가 ​​있습니다. 편안한 주문 태그 memory_order_relaxed가 지정된 원자 작업 은 동기화 작업이 아닙니다. 동시 메모리 액세스간에 순서를 부과하지 않습니다. 원 자성 및 수정 순서 일관성 만 보장합니다. 예를 들어 x와 y가 처음에 0 인 경우 // Thread 1: r1 = y.load(std::memory_order_relaxed); // A …

1
MSVC의 가능한 컴파일러 버그
다음 코드는 gcc 및 clang (및 기타 여러 C ++ 11 컴파일러)으로 컴파일됩니다. #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = to_datatype<T>::value) {} }; int …
13 c++  c++11  visual-c++ 

1
C ++에서 버전간에 표현식 유형이 변경된 이유는 무엇입니까?
C ++ 초안을 이해하기가 어려워서 C ++ 초안을 소화하기가 매우 어려워 다른 리소스를 선호하기 때문에 표현 유형 을 이해하려고 합니다. C ++ 버전 간의 표현 및 정의가 크게 변경되었습니다. 다음에서는 다음과 같은 초안을 참조합니다. C ++ 11 [ n3690 ] (최종 초안) C ++ 17 [ n4659 ] (최종 초안) …
13 c++  c++11  c++14  c++17  c++20 

2
왜 열거 형 변수가 rvalue입니까?
예: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } 이것을 컴파일 할 때 다음과 같은 오류가 발생합니다. <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue reference of type …

3
C ++에서 std :: resize (n)과 std :: shrink_to_fit의 차이점은 무엇입니까?
나는이 진술들을 보았습니다. resize(n)– 'n'요소를 포함하도록 컨테이너의 크기를 조정합니다. shrink_to_fit()– 크기에 맞게 컨테이너 용량을 줄이고 용량을 초과하는 모든 요소를 ​​파괴합니다. 이 기능들 사이에 중요한 차이점이 있습니까? 그들은 C ++에서 벡터 아래에옵니다.

3
컴파일러가 생성 한 함수를 찾는 방법은 무엇입니까?
컴파일러 생성 함수, 3의 규칙 및 5의 규칙에 대해 알고 있습니다. 실제 시나리오에서는 컴파일러가 실제로 생성 한 컴파일러 생성 함수 (생성자, 할당 연산자, 소멸자)를 정확히 파악하는 것이 쉽지 않을 수 있습니다. 특정 클래스에 대해 컴파일러 생성 함수를 나열하는 방법이 있습니까? 나는 주로 Visual Studio 2019 및 Xcode에 관심이 있지만 일반적인 …
11 c++  c++11 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.