«c++11» 태그된 질문

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


17
Eclipse CDT에서 C ++ 11 / C ++ 0x 지원을 활성화하는 방법은 무엇입니까?
이클립스 3.7.1 CDT 1.4.1 GCC 4.6.2 다음은 C ++ 11 코드의 한 예입니다. auto text = std::unique_ptr<char[]>(new char[len]); Eclipse 편집기는 다음에 대해 불평합니다. Function 'unique_ptr' could not be resolved Makefile 컴파일이 제대로 작동합니다. 이클립스가 이러한 종류의 오류에 대해 불평하지 않게하는 방법은 무엇입니까?

8
람다를 함수 포인터로 전달
람다 함수를 함수 포인터로 전달할 수 있습니까? 그렇다면 컴파일 오류가 발생하여 잘못된 것을 수행해야합니다. 다음 예를 고려하십시오 using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; Decide greaterThanThree{ [x](){ return x > 3; } }; …

2
최신 C ++로 무료 성능을 얻을 수 있습니까?
C ++ 11/14는 단지 C ++ 98 코드를 컴파일 할 때에도 성능을 향상시킬 수 있다고 주장합니다. 정당화는 보통 rvalue 생성자가 자동으로 생성되거나 STL의 일부이므로 이동 시맨틱 라인을 따릅니다. 이제 이러한 사례가 실제로 RVO 또는 유사한 컴파일러 최적화로 이미 처리되었는지 궁금합니다. 내 질문은 수정하지 않고 새로운 언어 기능을 지원하는 컴파일러를 사용하여 …

7
C ++ 11에서 비 멤버 시작 및 종료 함수를 사용하는 이유는 무엇입니까?
모든 표준 컨테이너에는 해당 컨테이너의 반복자를 반환 하는 begin및 end메소드가 있습니다. 그러나 C ++ (11)이 분명히 발표했다 무료 기능을 호출 std::begin하고 std::end이는 전화 begin와 end멤버 함수를. 그래서 글 쓰는 대신 auto i = v.begin(); auto e = v.end(); 당신은 쓸 것입니다 auto i = std::begin(v); auto e = std::end(v); Herb …

3
'std :: cout'에 대한 정의되지 않은 참조
이것이 예일까요? #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } 오류가 발생합니다. gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char,std::char_traits<char> >& std::operator<< <std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char> >&, char const*)' main.o: In function `__static_initialization_and_destruction_0(int,int)': main.cpp:(.text+0x3d): …
197 c++  c++11  gcc  cout 

2
함수 내부의 정적 constexpr 변수가 의미가 있습니까?
내가 함수 내에서 (예를 들어, 큰 배열을) 변수가 있다면, 그것은 두 선언은 의미가 수행 static하고에게 constexpr? constexpr컴파일 타임에 배열이 생성되도록 보장하므로 static쓸모가 없습니까? void f() { static constexpr int x [] = { // a few thousand elements }; // do something with the array } 는 IS static생성 된 …
193 c++  static  c++11  constexpr 

9
C ++ 11에서 어떤 C ++ 숙어가 더 이상 사용되지 않습니까?
새로운 표준에는 새로운 방식의 일이 있으며 많은 방법이 기존 방식보다 좋지만 기존 방식은 여전히 ​​낫습니다. 새로운 표준은 이전 버전과의 호환성을 위해 공식적으로 많이 사용되지 않습니다. 따라서 남아있는 질문은 다음과 같습니다. 어떤 오래된 코딩 방식이 C ++ 11 스타일보다 확실히 열등하지 않으며, 대신 무엇을 할 수 있습니까? 이에 대한 답으로 "자동 …
192 c++  c++11  c++-faq 

2
어떤 Boost 기능이 C ++ 11과 겹치나요?
몇 년 전 C ++ 기술을 선반에 올려 놓았는데 이제 다시 필요할 때 풍경이 바뀌는 것 같습니다. 우리는 지금 C ++ 11을 가지고 있으며, 많은 Boost 기능과 겹친다는 것을 이해합니다. 겹치는 부분이 어디에 있는지, 어떤 부스트 라이브러리가 레거시가 될지, 부스트 기능 대신 어떤 C ++ 11 기능을 사용하고 어떤 것이 …
192 c++  boost  c++11 

7
std :: list :: reverse에 왜 O (n) 복잡성이 있습니까?
std::listC ++ 표준 라이브러리 의 클래스에 대한 역 기능 이 선형 런타임을 갖는 이유는 무엇 입니까? 이중 연결 목록의 경우 역 기능이 O (1)이어야한다고 생각합니다. 이중으로 연결된 목록을 바꾸려면 머리와 꼬리 포인터를 전환하면됩니다.
192 c++  c++11  stl  linked-list 

5
귀환의 요점은 무엇입니까?
[dcl.attr.noreturn] 은 다음 예제를 제공합니다. [[ noreturn ]] void f() { throw "error"; // OK } 그러나 [[noreturn]]함수의 반환 유형이 이미 있기 때문에 요점을 이해하지 못합니다 void. 그렇다면 noreturn속성 의 요점은 무엇 입니까? 어떻게 사용해야합니까?


16
보호되거나 개인 생성자 만있는 클래스에서 :: std :: make_shared를 어떻게 호출합니까?
작동하지 않는이 코드가 있지만 의도가 분명하다고 생각합니다. testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } 그러나 컴파일 할 때이 오류가 발생합니다. …
187 c++  c++11  shared-ptr 

6
정적 constexpr char []에 대한 정의되지 않은 참조
static const char수업에 배열 을 갖고 싶습니다 . GCC는 불만을 제기하고 사용해야한다고 말 constexpr했지만 이제는 정의되지 않은 참조라고 알려줍니다. 배열을 비 멤버로 만들면 컴파일됩니다. 무슨 일이야? // .hpp struct foo { void bar(); static constexpr char baz[] = "quz"; }; // .cpp void foo::bar() { std::string str(baz); // undefined reference …

4
std :: auto_ptr에서 std :: unique_ptr로
새로운 표준이 등장함에 따라 (그리고 일부 컴파일러에서 이미 사용 가능한 부분), 새로운 유형 std::unique_ptr은의 대체품으로 간주됩니다 std::auto_ptr. 사용법이 정확히 겹치므로 (내 코드에서 전역 찾기 / 바꾸기를 수행 할 수는 있지만 (그렇지 않은 경우) 그렇지 않은 경우) 설명서를 읽을 때 명확하지 않은 몇 가지 차이점을 알고 있어야합니까? 또한 그것이 직접 대체라면 …

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