«c++11» 태그된 질문

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

2
이미 구성된 객체에 대한 std :: move 대 emplace_back ()을 사용한 C ++ 11 push_back ()의 ​​효율성
C ++ 11 emplace_back()에서는 일반적으로 push_back()내부 생성을 허용하므로 효율성 측면에서 선호 되지만 push_back(std::move())이미 생성 된 객체와 함께 사용하는 경우에도 마찬가지 입니까? 예를 들어, emplace_back()다음과 같은 경우에 여전히 선호됩니까? std::string mystring("hello world"); std::vector<std::string> myvector; myvector.emplace_back(mystring); myvector.push_back(std::move(mystring)); // (of course assuming we don't care about using the value of mystring after) 또한 …

5
C ++ 11의 std :: atomic :: compare_exchange_weak () 이해
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()C ++ 11에서 제공되는 비교-교환 프리미티브 중 하나입니다. 객체의 값이 같더라도 false를 반환한다는 점 에서 약 합니다 expected. 이는 일련의 명령어 (x86의 명령어 대신)가이를 구현하는 데 사용되는 일부 플랫폼의 스퓨리어스 오류 때문입니다. 이러한 플랫폼에서 컨텍스트 전환, 다른 스레드에 의한 동일한 주소 (또는 캐시 …

5
Linux의 GCC에서 std :: thread를 사용하는 올바른 링크 옵션은 무엇입니까?
안녕하세요 저는 std::threadG ++ 로 사용하려고합니다 . 내 테스트 코드는 다음과 같습니다. #include <thread> #include <iostream> int main(int, char **){ std::thread tt([](){ std::cout<<"Thread!"<<std::endl; }); tt.join(); } 컴파일되지만 실행하려고하면 결과는 다음과 같습니다. terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted 내 컴파일러 버전 : $ g++ …

4
최신 C ++의 실험적 기능은 장기 프로젝트에서 신뢰할 수 있습니까?
현재 C ++ 11 / 14를 사용하는 프로젝트가 있지만 std::filesystemC ++ 17에서만 사용할 수 있는와 같은 것이 필요 하므로 현재 사용할 기회가 없습니다. 그러나 현재 컴파일러에서 std::experimental::filesystem. 미래에 다음과 같은 것을 추가 할 수 있다고 가정하고 실험적 기능을 사용하는 것이 좋은 생각입니까? #ifdef CXX17 //if this is C++17 std::filesystem::something ...; …


6
일반 배열에 대한 범위 기반은 어떻게 작동합니까?
C ++ 11에서는 다른 언어의 for역할을 하는 범위 기반을 사용할 수 foreach있습니다. 일반 C 배열에서도 작동합니다. int numbers[] = { 1, 2, 3, 4, 5 }; for (int& n : numbers) { n *= 2; } 언제 중지해야하는지 어떻게 알 수 있습니까? for사용되는 것과 동일한 범위에서 선언 된 정적 배열에서만 …
87 c++  arrays  foreach  c++11 


3
C ++ 11은 비 정적 및 비상 수 멤버의 클래스 내 초기화를 허용합니다. 무엇이 바뀌 었습니까?
C ++ 11 이전에는 정수 또는 열거 형의 정적 const 멤버에 대해서만 클래스 내 초기화를 수행 할 수있었습니다. Stroustrup은 C ++ FAQ에서 이에 대해 설명 하며 다음 예제를 제공합니다. class Y { const int c3 = 7; // error: not static static int c4 = 7; // error: not const …

8
C ++ 11 emplace_back on vector <struct>?
다음 프로그램을 고려하십시오. #include &lt;string&gt; #include &lt;vector&gt; using namespace std; struct T { int a; double b; string c; }; vector&lt;T&gt; V; int main() { V.emplace_back(42, 3.14, "foo"); } 작동하지 않습니다. $ g++ -std=gnu++11 ./test.cpp In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:0, from /usr/include/c++/4.7/bits/allocator.h:48, from /usr/include/c++/4.7/string:43, from ./test.cpp:1: /usr/include/c++/4.7/ext/new_allocator.h: In instantiation of …
87 c++  c++11 


8
'float a = 3.0;' 정확한 진술?
다음 선언이있는 경우 : float a = 3.0 ; 그게 오류인가요? 나는 책에서 읽은 3.0A는 double가치와 내가 가지고로 지정 float a = 3.0f. 그렇습니까?
86 c++  c++11 

4
const 멤버 함수가 정적 데이터 멤버를 수정할 수있는 이유는 무엇입니까?
다음 C++프로그램에서는 함수 에서 정적 데이터 멤버 를 수정하는 const것이 정상적으로 작동합니다. class A { public: static int a; // static data member void set() const { a = 10; } }; 그러나 함수 에서 비 정적 데이터 멤버 를 수정하는 const것은 작동하지 않습니다. class A { public: int a; …

4
Xcode에서 C ++ 11을 사용할 수 있습니까?
auto일부 크로스 플랫폼 프로젝트 (Windows + Mac) 에서 일부 C ++ 11 기능 (예 : 예) 의 사용을 고려하고 있습니다 . Windows에서 Visual Studio는 코드베이스의 일부를 단순화 할 수있는 곧 출시 될 C ++ 11 표준의 일부를 지원하므로 자연스럽게 이러한 기능을 사용하는 데 관심이있을 것입니다. 그러나 내가 아는 한 현재 …
86 c++  xcode  gcc  c++11  clang 

8
C ++ 0x에서 변환 범위를 좁 힙니다. 그것은 나뿐입니까, 아니면 이것이 큰 변화처럼 들립니까?
C ++ 0X는 소위 필요로하기 때문에, 다음 코드와 유사한 코드가 잘못 형성 할 예정이다 축소 변환 (A)의 doubleA와를 int. int a[] = { 1.0 }; 이런 종류의 초기화가 실제 코드에서 많이 사용되는지 궁금합니다. 이 변경으로 인해 얼마나 많은 코드가 손상됩니까? 코드가 영향을받는 경우 코드에서이 문제를 해결하는 데 많은 노력이 필요합니까? …

13
C ++ volatile 키워드가 메모리 울타리를 도입합니까?
volatile컴파일러에게 값이 변경 될 수 있음 을 알리는 것을 이해 하지만이 기능을 수행하려면 컴파일러가 작동하도록 메모리 펜스를 도입해야합니까? 내 이해에서 휘발성 개체에 대한 작업 순서는 재정렬 할 수 없으며 보존해야합니다. 이것은 일부 메모리 펜스가 필요하며 실제로이 문제를 해결할 방법이 없음을 의미하는 것 같습니다. 이 말이 맞습니까? 이 관련 질문에 흥미로운 …

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