«c++» 태그된 질문

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

2
모호한 과부하 템플릿
다음과 같은 템플릿 코드가 있습니다 #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void foo(std::vector<std::vector<T1>> bar) { std::cout << "SPECIFIC (vector)" << std::endl; } template<typename T1, int SIZE> void foo(std::vector<std::array<T1, SIZE>> bar) { std::cout << "SPECIFIC (array)" << …
16 c++  templates 

3
Rcpp 속도가 느린 R 목적 함수를 최적화하는 이유는 무엇입니까?
현재 반복마다 다항식 로짓 모델을 여러 단계로 최적화 해야하는 베이지안 방법을 연구 중입니다. 이러한 최적화를 수행하기 위해 optim ()을 사용하고 있으며 R로 작성된 목적 함수입니다. 프로파일 링에서 optim ()이 주요 병목 현상 인 것으로 나타났습니다. 주위를 파고 들자, 이 질문 을 통해 목적 함수를 코딩 Rcpp하면 프로세스 속도를 높일 수 …
16 c++  r  optimization  rcpp 

1
std :: pair <auto, auto> 반환 유형
에서 놀고 auto있었습니다 std::pair. 아래 코드에서 함수 f는 std::pair템플릿 매개 변수에 따라 유형 중 하나를 반환해야합니다 . 실제 예 : 실시 예 1 template &lt;unsigned S&gt; auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return std::pair{1.0, 2.0}; …

2
std :: set가 메모리에 연속적으로 객체를 저장합니까?
? std::set같은 연속 메모리에 객체를 저장 합니까 std::vector? 웹에서 이것을 찾을 수 없었습니다 .cppreference는 메모리 할당에 대한 세부 사항을 언급하지 않습니다. 그러나 왜 연속 메모리를 사용할 수 없었는지 알 수 없으므로 내 질문입니다.
16 c++  set  stdset 

1
sizeof (enum)이 sizeof (std :: underlying_type <Enum> :: type)과 다를 수 있습니까?
최근에 다음 예제에서 코드 검토를 수행했습니다. enum class A : uint8_t { VAL1, VAL2 }; ... std::vector&lt;A&gt; vOfA; // Assume this is sized and full of some stuff. std::memcpy(wire_buffer, vOfA.data(), vOfA.size() * sizeof(A)); sizeof(std::underlying_type&lt;A&gt;::type)대신에 사용해야합니다 sizeof(A). 이것들이 다를 수 있습니까? 누군가 이것을 보장하는 표준 견적이 있습니까?

3
다양한 템플릿 : 그룹에서 인수 펼치기
두 가지 인수를 취하는 함수가 있습니다. template &lt;typename T1, typename T2&gt; void foo(T1 arg1, T2 arg2) { std::cout &lt;&lt; arg1 &lt;&lt; " + " &lt;&lt; arg2 &lt;&lt; '\n'; } 그리고 인수를 쌍으로 전달 해야하는 가변적 인 것 : template &lt;typename... Args&gt; void bar(Args&amp;&amp;... args) { static_assert(sizeof...(Args) % 2 == 0); …

2
[[no_unique_address]] 및 동일한 유형의 두 멤버 값
[[no_unique_address]]에서 놀고 있습니다 c++20. cppreference 의 예에서는 빈 유형 Empty과 유형이 있습니다.Z struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; 분명히,의 크기는 Z최소한이어야 2하기 때문에 종류의 e1와 e2동일합니다. 그러나, 나는 정말로 Zsize 를 갖고 싶다 1. 이것은 나에게 무엇을 포장에 대한 생각 …

1
consteval 함수가 정의되지 않은 동작을 허용하는 이유는 무엇입니까?
C ++에는 상수 표현식의 매우 깔끔한 속성이 있습니다. 평가에는 정의되지 않은 동작 ( 7.7.4.7 ) 이있을 수 없습니다 . 추상 기계의 규칙 ([intro.execution])에 따라 e의 평가가 다음 중 하나를 평가하지 않는 한, 표현식 e는 핵심 상수 표현식입니다. ... 이 문서의 [intro] ~ [cpp]에 지정된대로 정의되지 않은 동작을 갖는 연산 [참고 …

3
운영자 삭제에서 소멸자가 호출되지 않는 이유는 무엇입니까?
나는 그것 ::delete의 수업 을 요청 operator delete했습니다. 그러나 소멸자는 호출되지 않습니다. 과부하 된 클래스 MyClass를 정의했습니다 operator delete. 글로벌 operator delete도 과부하 상태입니다. 오버로드 operator delete의이 MyClassv로드 세계를 호출합니다 operator delete. class MyClass { public: MyClass() { printf("Constructing MyClass...\n"); } virtual ~MyClass() { printf("Destroying MyClass...\n"); } void* operator new(size_t …

9
Catalina C ++ : <cmath> 헤더를 사용하면 오류가 발생합니다 : 전역 네임 스페이스에 'signbit'이라는 멤버가 없습니다.
Mojave에서 Catalina로 업그레이드 한 후 환경 설정 : /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk &lt;cmath&gt;헤더 를 사용하는 프로그램을 컴파일 할 수 없습니다 . CFLAGS, CCFLAGS, CXXFLAGS를 변경하여 MacOSSDK 위치를 가리 키도록 변경하지 않았습니다. Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] Building CXX object OgreMain/CMakeFiles/OgreMain.dir/src/OgreASTCCodec.cpp.o cd /Users/roman/Downloads/ogre-1.12.2/build/OgreMain &amp;&amp; /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DOgreMain_EXPORTS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OSX …

4
컴파일 타임에 메소드가 정확히 한 곳에서 호출되는지 확인하십시오.
컴파일 타임에 메소드가 정확히 한 곳에서 호출되는지 확인할 수 있는지 궁금합니다. 함수가 두 번 이상 (예 : 루프에서) 호출되면 괜찮지 만 두 개의 개별 루프에서 호출해서는 안됩니다. 이것은 두 부분으로 나눌 수 있습니다, 나는 또한 중 일부를 커버 솔루션에 관심이 있어요 : (A) 방법을 확인이 적어도 하나 개의 장소에 호출 …
15 c++ 

5
총 길이보다 작은 장소 수에 대해 STL을 사용하여 C ++에서 순열을 만드는 방법
나는이 c++ vector와 std::pair&lt;unsigned long, unsigned long&gt;객체. 를 사용하여 벡터 객체의 순열을 생성하려고합니다 std::next_permutation(). 그러나 permutations기대되는 반환 순열의 크기가 지정된 파이썬 의 함수 와 유사하게 순열의 크기를 지정 하고 싶습니다 . 기본적으로, c++동등한 import itertools list = [1,2,3,4,5,6,7] for permutation in itertools.permutations(list, 3): print(permutation) 파이썬 데모 (1, 2, 3) (1, …

2
템플릿 typename 인수에 대한 참조를 전달하는 방법
템플릿 typename 인수에 인수로 참조를 전달하는 방법이 있습니까? 예를 들어 int에 대한 참조를 전달하기 위해 int를 전달하는 대신 의미합니다. template &lt;typename T&gt; struct Foo { Foo(T arg) : ptr(arg) {} T ptr; }; int main() { int* a = new int(6); Foo&lt;decltype(a)&gt; foo1(a); // ptr is a copy of a …
15 c++  templates 

3
가장 저렴한 인수 유형을 결정하는 컴파일 시간 방법
다음과 같은 템플릿이 있습니다 template &lt;typename T&gt; class Foo { public: Foo(const T&amp; t) : _t(t) {} private: const T _t; }; 인수 유형이 부울 또는 문자와 같이 사소한 경우 const 참조를 사용하지 않는 정통한 템플릿 메타 프로그래밍 방법이 있습니까? 처럼: Foo(stl::smarter_argument&lt;T&gt;::type t) : _t(t) {}
15 c++  stl 

4
std :: map의 키에서 리소스를 훔치는 것이 허용됩니까?
C ++에서는 나중에 더 이상 필요하지 않은 맵에서 리소스를 훔치는 것이 괜찮습니까? 더 정확하게 말하면 std::mapwith std::string키가 있고를 map사용하여 s 키 의 리소스를 훔쳐서 벡터를 구성하려고 한다고 가정 합니다 std::move. 키에 대한 이러한 쓰기 액세스는 내부 데이터 구조 (키 순서)를 손상 map시키지만 나중에 사용하지는 않습니다. 질문 : 문제 없이이 작업을 …

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