«c++» 태그된 질문

C ++는 범용 프로그래밍 언어입니다. 원래 C에 대한 확장으로 설계되었으며 유사한 구문을 갖지만 이제는 완전히 다른 언어입니다. C ++ 컴파일러로 컴파일 된 코드에 대한 질문에이 태그를 사용하십시오. 특정 표준 개정 [C ++ 11], [C ++ 14], [C ++ 17] 또는 [C ++ 20] 등과 관련된 질문에 버전 별 태그를 사용하십시오.

2
연쇄 할 때 복사를 제거하는 방법?
아래의 작은 예제와 같은 체인 유형의 클래스를 만들고 있습니다. 멤버 함수를 연결할 때 복사 생성자가 호출되는 것 같습니다. 복사 생성자 호출을 제거하는 방법이 있습니까? 아래의 장난감 예제에서, 나는 단지 임시적인 것만을 다루고 있으므로 "표준에 의해서가 아니라 논리적으로"소멸해야한다는 것이 명백하다. 제거를 복사하는 두 번째 최선의 선택은 이동 생성자를 호출하는 것이지만, 그렇지 …
10 c++  c++14  c++17 

3
다음과 같은 경우 종속 유형에 typename을 사용할 필요가없는 이유는 무엇입니까?
유형의 참조를 제거하는 방법에 대해 읽었 습니다 . 다음 예제를 제공합니다. #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int &&>(); print_is_same<int, std::remove_reference<int>::type>(); // …

5
동적 연결-Linux Vs. 윈도우
Windows에서 MSVC의 DLL 프로젝트에서 C / C ++ 코드를 컴파일하면 2 개의 파일이 나타납니다. MyDll.dll MyDll.lib 내가 이해 MyDll.lib하는 한 dll의 함수 위치를 나타내는 일종의 포인터 테이블이 포함되어 있습니다. 이 dll (예 : exe 파일) MyDll.lib을 사용하면 링크하는 동안 exe 파일에 포함되므로 런타임시 함수가있는 위치를 "알고" MyDll.dll사용할 수 있습니다. 그러나 …


2
SWIG를 사용하여 numpy 배열을 vector <int> & (reference)로 변환하는 방법
내 목표: 파이썬에서 3 개의 numpy 배열을 생성 한 다음 (두 개는 특정 값으로 초기화됩니다) 세 가지를 모두 swig를 통해 벡터 참조 로 c ++ 함수에 보냅니다. (데이터 복사 및 효율성 손실을 피하기 위해). c ++ 함수에 들어가면 배열 중 2 개를 더하고 그 합을 3 번째 배열에 넣습니다. vec_ref.h …
10 python  c++  numpy  vector  swig 



2
정의되지 않은 C ++ 동작이 C 정의 된 동작을 충족하면 어떻게됩니까?
*.cppC 컴파일러가 아닌 C ++로 컴파일 하는 파일이 있습니다. 포함 함수는 C (정확한 경우 수정하십시오!)로 정의 된 것처럼 보이는 캐스트 (마지막 줄 참조)에 의존하지만이 특수 유형의 C ++에서는 그렇지 않습니다. [...] C++ code [...] struct sockaddr_in sa = {0}; int sockfd = ...; sa.sin_family = AF_INET; sa.sin_port = htons(port); bind(sockfd, …


2
부동 상수에 대한 의사 소멸자를 호출하는 유효한 구문
다음과 같은 실증 프로그램을 고려하십시오. #include &lt;iostream&gt; int main() { typedef float T; 0.f.T::~T(); } 이 프로그램은에 의해 컴파일됩니다 Microsoft Visual Studio Community 2019. 그러나 clang와 gcc같은 오류를 발행 prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ ( 0.f ).T::~T()다음 과 같이 표현식을 작성하면 …

3
int (0)에서 벡터의 포인터로의 암시 적 변환을 피하는 방법
JSON에서 키에 대한 경로의 모든 노드 이름을 수집하려는 상황이 있습니다. 배열 인덱스 "0"의 조건, "1"도 허용되지만 인용 부호를 잊어 버리기 쉬워 역 참조시 충돌이 발생할 수 있습니다. 그래서 이것을 거부하고 싶습니다. 예: #include &lt;vector&gt; #include &lt;iostream&gt; int func(const std::vector&lt;const char*&gt;&amp; pin) { return pin.size(); } int main() { // {"aname", …

2
널 포인터 인수와 불가능한 사후 조건으로 표준 예외 구성
다음 프로그램을 고려하십시오. #include&lt;stdexcept&gt; #include&lt;iostream&gt; int main() { try { throw std::range_error(nullptr); } catch(const std::range_error&amp;) { std::cout &lt;&lt; "Caught!\n"; } } libstdc ++를 사용하는 GCC 및 Clang std::terminate은 메시지와 함께 프로그램을 중단하고 중단합니다 terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid 예외 구성시 libc ++ …

2
임시 파이프를 범위 작업으로 되돌릴 수 있습니까?
(특히 is ) generate_my_range를 모델링 하는 클래스가 있다고 가정하십시오 . 그런 다음 다음 코드가 맞습니다.rangeregular auto generate_my_range(int some_param) { auto my_transform_op = [](const auto&amp; x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to&lt;std::vector&gt;; 가요 my_custom_rng_gen(some_param)I는두고 일단 (제 1) 파이프 조작자 취한 값, 또는 I가 …
9 c++  range-v3 

1
인스턴스를 만들지 않고 std :: array <T, N>의 요소 수를 얻는 방법은 무엇입니까?
이 std::array&lt;T, N&gt;::size()있지만 정적이 아니므로의 인스턴스가 필요합니다 std::array. (는 IS는 반환 값을 얻을 수있는 방법이 있습니까 N의를 std::array&lt;T, N&gt;배열의 인스턴스를 생성하지 않고)는? 일반 배열의 경우을 사용할 수 sizeof있었지만 이것이 sizeof(std::array&lt;T, N&gt;) == N * sizeof(T)사실 이라는 보장은 없습니다 .
9 c++  arrays  c++11  sizeof 

2
어떤 네임 스페이스가 있고 규칙은 무엇입니까?
참고 :이 질문은 name space아닙니다 namespace. C ++ 표준에는에 대한 참조가 name space있지만 이에 대한 정의는 없습니다. 표준에 따르면 레이블과 매크로는 다른 이름 공간에 있습니다. 다른 모든 참조 name space는 다음과 같이 C / C ++ 호환성 섹션에 있습니다 ( 현재 초안 ). 이것은 C와 C ++ 사이의 몇 가지 …
9 c++  namespaces 

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