«c++11» 태그된 질문

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

5
extern 템플릿 사용 (C ++ 11)
그림 1 : 기능 템플릿 TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); Main.cpp #include "TemplHeader.h" extern template void f<T>(); //is this correct? int main() { f<char>(); return 0; } 을 사용하는 올바른 방법입니까 extern template, 아니면 그림 2와 같이 클래스 …
116 c++  templates  c++11  extern 

4
for 루프 내부에서 if 문을 피합니까?
다음 과 같은 Writer기능을 가진 클래스 가 있습니다 writeVector. void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } 나는 여전히 성능에 대해 걱정하면서 중복 코드를 가지지 …



3
범위 기반 for 루프에서 전달 참조를 사용하면 어떤 이점이 있습니까?
const auto&읽기 전용 작업을 수행하려면 충분합니다. 그러나 나는 부딪쳤다 for (auto&& e : v) // v is non-const 최근에 몇 번. 이것은 나를 궁금하게 만듭니다. 그것은 몇 가지 모호한 구석 경우에 비해, 전달 참조를 사용하여 약간의 성능 향상이 있음을 가능 auto&또는 const auto&? ( shared_ptr모호한 코너 케이스에 대한 용의자) 즐겨 …

1
variadic 함수의 모든 인수에 대해 std :: forward를 어떻게 호출합니까?
난 그냥 일반 개체 팩토리를 작성하고 부스트 전 처리기 메타 라이브러리를 사용하여 가변 템플릿을 만들었습니다 (2010을 사용하고 지원하지 않음). 내 함수는 rval 참조를 사용하고 std::forward완벽한 포워딩을 수행하기 위해 C ++ 0X가 나오고 표준 컴파일러가있을 때 실제 가변 템플릿으로이 작업을 수행 할 것이라고 생각했습니다. 그래도 내가 std::forward논쟁을 불러 일으키겠습니까? template <typename …

2
C ++ 11에서 unorder_map이 삽입 한 것을 파괴하는 것이 C ++ 표준위원회의 의도입니까?
나는 unorder_map :: insert ()가 삽입 한 변수를 파괴하는 매우 이상한 버그를 추적하는 내 인생의 3 일을 잃었습니다. 이 매우 명확하지 않은 동작은 최신 컴파일러에서만 발생합니다. clang 3.2-3.4 및 GCC 4.8 이이 "기능"을 보여주는 유일한 컴파일러 라는 것을 발견했습니다 . 다음은 문제를 보여주는 주요 코드베이스의 일부 축소 된 코드입니다. #include …
114 c++  gcc  c++11  clang  standards 

9
두 개 이상의 컨테이너를 동시에 반복하는 가장 좋은 방법은 무엇입니까?
C ++ 11은 컨테이너를 반복하는 여러 방법을 제공합니다. 예를 들면 : 범위 기반 루프 for(auto c : container) fun(c) std :: for_each for_each(container.begin(),container.end(),fun) 그러나 같은 크기의 두 개 이상의 컨테이너를 반복하여 다음과 같은 작업을 수행하는 데 권장되는 방법은 무엇입니까? for(unsigned i = 0; i < containerA.size(); ++i) { containerA[i] = …


6
`const` 객체에`std :: move`를 사용할 수있는 이유는 무엇입니까?
C ++ 11에서는 다음 코드를 작성할 수 있습니다. struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 를 호출 std::move하면 개체를 이동하고 싶다는 의미입니다. 즉, 개체를 변경하겠습니다. const개체 를 이동하는 것은 비합리적인데 왜이 std::move동작을 제한 하지 않습니까? 장래에 함정이 되겠죠? 여기에 트랩은 Brandon이 주석에서 언급했듯이 …
113 c++  c++11 

4
cout은 동기화 / 스레드 안전합니까?
일반적으로 스트림이 동기화되지 않는다고 가정하고 적절한 잠금을 수행하는 것은 사용자에게 달려 있습니다. 그러나 cout표준 라이브러리에서 특별한 대우를받는 것과 같은 것들이 있습니까? 즉, 여러 스레드가 쓰는 cout경우 cout개체가 손상 될 수 있습니까? 동기화하더라도 무작위로 인터리브 출력을 얻을 수 있지만 인터리빙은 보장됩니다. 즉, cout여러 스레드에서 사용하는 것이 안전 합니까? 이 공급 업체에 …
112 c++  gcc  c++11 

20
std :: tuple의 요소를 어떻게 반복 할 수 있습니까?
튜플 (C ++ 11 사용)을 어떻게 반복 할 수 있습니까? 다음을 시도했습니다. for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); 그러나 이것은 작동하지 않습니다. 오류 1 : 죄송합니다. 구현되지 않았습니다. 'Listener ...'를 고정 길이 인수 목록으로 확장 할 수 없습니다. 오류 2 : 상수 표현식에 나타날 수 없습니다. 그렇다면 튜플의 요소를 올바르게 반복하는 …

8
mt19937 PRNG를 간결하고 이식 가능하며 철저하게 시드하는 방법은 무엇입니까?
<random>일반적으로 다음과 같은 코드와 함께 난수를 생성하기 위해 누군가 제안하는 많은 답변을 보는 것 같습니다 . std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); 일반적으로 이것은 다음과 같은 일종의 "거룩하지 않은 혐오"를 대체합니다. srand(time(NULL)); rand()%6; 우리 는 낮은 엔트로피 를 제공 하고 예측 가능하며 최종 결과가 균일하지 않다고 주장함으로써 이전 …
112 c++  c++11  random 

4
열거 형 클래스를 기본 형식으로 변환 할 수 있습니까?
enum class필드를 기본 유형 으로 변환하는 방법이 있습니까? 나는 이것이 자동이라고 생각했지만 분명히 그렇지 않습니다. enum class my_fields : unsigned { field = 1 }; unsigned a = my_fields::field; 해당 할당은 GCC에서 거부됩니다. error: cannot convert 'my_fields' to 'unsigned int' in assignment.
112 c++  c++11 

13
C ++로 내부에 "if"조건이있는 "for"루프를 피하려면 어떻게해야합니까?
내가 작성하는 거의 모든 코드를 사용하여 궁극적으로 컬렉션 내부에 순진한 "if"조건으로 끝나는 집합 감소 문제를 종종 다루고 있습니다. 다음은 간단한 예입니다. for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } 함수형 언어를 사용하면 컬렉션을 다른 컬렉션으로 (쉽게) 축소하여 문제를 해결 한 다음 축소 된 집합에서 모든 …
111 c++  c++11  c++14 

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