«c++» 태그된 질문

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

1
C ++ 14와 C ++ 17에서 std :: atomic 생성자가 다르게 동작하는 이유
C ++ 11로 프로젝트를 진행 중이며 다음 코드를 시도했습니다. #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } 컴파일러 오류가 발생합니다 error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const std::__atomic_base<_IntTp>&) [with _ITp = int]' std::atomic_int idx = 1; ^ C ++ 14에서도 같은 결과가 나옵니다. …
19 c++  c++14  c++17  stdatomic 

2
same_as 개념이 유형 평등을 두 번 검사하는 이유는 무엇입니까?
https://en.cppreference.com/w/cpp/concepts/same_as 에서 same_as 개념의 가능한 구현을 살펴보면 이상한 일이 일어나고 있음을 알았습니다. namespace detail { template< class T, class U > concept SameHelper = std::is_same_v<T, U>; } template< class T, class U > concept same_as = detail::SameHelper<T, U> && detail::SameHelper<U, T>; 첫 번째 질문은 SameHelper개념이 왜 엉망인가? 두 번째 이유는 …
19 c++  c++20  concept 


5
매달린 const 참조를 해결하는 방법
다음 짧은 프로그램 #include <vector> #include <iostream> std::vector<int> someNums() { return {3, 5, 7, 11}; } class Woop { public: Woop(const std::vector<int>& nums) : numbers(nums) {} void report() { for (int i : numbers) std::cout << i << ' '; std::cout << '\n'; } private: const std::vector<int>& numbers; }; int …
18 c++ 

3
Lambda 클로저 lvalue는 rvalue 참조 매개 변수로 전달 될 수 있습니다.
lvalue람다 클로저는 항상 rvalue함수 매개 변수 로 전달 될 수 있다는 것을 알았습니다 . 다음의 간단한 데모를 참조하십시오. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: …


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
변수 초기화를 잘못 건너 뛰거나 정의되지 않은 동작을 유발합니까?
이 코드를 고려하십시오. void foo() { goto bar; int x = 0; bar: ; } GCC와 Clang 은 변수 초기화 를 건너 뛰기 때문에 이를 거부합니다bar: . MSVC는 (사용 제외하고는 전혀 불평하지 않습니다 x후 bar:원인 경고). 우리는 비슷한 일을 할 수 있습니다 switch: void foo() { switch (0) { int …

1
C ++ 표준이 파일을 처리하는 방식을 찾는 이유는 무엇입니까?
C ++는 streamoff형식을 사용하여 (파일) 스트림 내의 오프셋을 나타내며 [stream.types]에 다음과 같이 정의됩니다. using streamoff = implementation-defined ; type streamoff는 운영 체제에 가능한 최대 파일 크기를 나타내기에 충분한 크기의 서명 된 기본 정수 유형 중 하나와 동의어입니다. 287) 287) 일반적으로 길다. 이것은 long32 비트 너비 의을 사용하는 것과는 반대로 큰 …


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

4
std :: function이 과부하 해결에 참여하지 않는 이유는 무엇입니까?
다음 코드는 컴파일되지 않는다는 것을 알고 있습니다. void baz(int i) { } void baz() { } class Bar { std::function<void()> bazFn; public: Bar(std::function<void()> fun = baz) : bazFn(fun){} }; int main(int argc, char **argv) { Bar b; return 0; } 때문에 std::functionIS 내가 읽을로, 오버로드 확인을 고려하지 말라고 이 다른 …

1
클래스 템플릿의 중첩 클래스가 특수화를 통해서만 정의 된 코드를 거부하기 위해 Clang이 올바른가요?
다음과 같은 클래스 템플릿이 제공됩니다. template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; 우리는 정의 Inner 각 전문 분야에 대해 별도로 합니다 Outer. template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; 그런 다음 멤버 함수를 정의하십시오. f 모든 전문화에 대해 한 번Outer . auto Outer<T>::f(Inner) -> …

3
카탈리나에 Valgrind를 설치하는 방법이 있습니까?
카탈리나에 Valgrind를 설치하고 제대로 작동시키는 방법이 있습니까? 그렇다면 단계별 프로세스에 대단히 감사하겠습니다. https://github.com/sowson/valgrind를 사용 하여 Valgrind를 설치하려고 시도했지만 helloWorld.cpp터미널에서 테스트했을 때 콘솔에서 오류를 반환했습니다. 이 Valgrind 버전의 설치 과정에서 오류가 발생했는지 또는 Valgrind 자체가 단순히 Catalina OS와 호환되지 않는지 잘 모르겠습니다. 나는 또한 Homebrew를 통해 Valgrind를 설치하려고 시도했지만 이것도 문제가 …

1
전역 const char []를 constexpr string_view로 바꾸어야 할 문제가 있습니까?
우리 팀은 10 년 이상 된 C ++ 코드 기반으로 작업하고 있으며 최근에는 C ++ 17 컴파일러로 전환했습니다. 그래서 우리는 코드를 현대화하는 방법을 찾고 있습니다. YouTube에서 열린 컨퍼런스 토크에서 const char*전 세계 문자열을 로 바꾸 겠다는 제안을 들었습니다 constexpr string_view. 우리는 const char*코드에 많은 수의 전역 문자열 상수를 가지고 있기 …

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