Свързани въпроси 'c++14'

Трябва ли std::move да се комбинира със std::forward, когато се използват препратки за препращане?
Трябва ли std::move да се комбинира със std::forward при използване на универсални препратки? Например, кой от следните два кода е правилен? void bar(auto && x) { auto y(std::move(std::forward<decltype(x)>(x))); } or...
162 изгледи
schedule 17.09.2022

Наследяване на конструктор и предоставяне на ново претоварване: базовият конструктор без аргументи изглежда не участва в разрешаването на претоварването
Тестовете показват странно поведение ( c++14 , g++ 4.9.1 , clang 3.5.5 ): Накратко: ако B не предоставя други конструктори, може да използва A::A() ако B предоставя други конструктори, той не може да използва A::A() , но използва...
79 изгледи

Трябва ли неулавяните общи ламбда да се разпадат до функционални указатели?
Разгледайте следния код: int main() { auto l = [](auto){}; void(*p)(int) = l; } Работи добре както с GCC , така и с clang . Нека разгледаме следната леко модифицирана версия: int main() { auto l = [](auto...){};...
345 изгледи
schedule 16.09.2022

constexpr препратка към неконстантен обект
Разрешено ли е да се декларира неконстантна препратка като constexpr ? Примерен код: int x = 1; constexpr int& r = x; Това се приема от gcc и clang (пробвах няколко текущи и минали версии и на двете, обратно към C++11, и всички го...
286 изгледи

Постепенно изграждане на вектор от указатели на променливи по време на компилиране
Опитвам се да разреша проблем, при който имам няколко декларации на разпръснати променливи (в една единица за компилиране) и искам да изградя вектор от техните адреси по време на компилация (ако не е възможно като пространствено ефективен вектор,...
106 изгледи
schedule 19.09.2022

Как да отпечатате x числа с rand()%
Как мога да отпечатам да речем 10 числа с помощта на rand(), след което да ги сортирам по най-голям? #include <iostream> using namespace std; int main() { int b; cin >> b; srand(b); for (int i = 0; i < 10; i++){...
77 изгледи
schedule 15.09.2022

Използване на оператора noexcept за свързване на noexcept декларации
Защо операторът noexcept приема израз, а не сигнатура/декларация на функция? Помислете за следния фиктивен пример: #include <string> void strProcessor(const std::string& str) noexcept(true) { }; struct Type{ void method1()...
574 изгледи
schedule 21.09.2022

std::allocator_traits по подразбиране с разпределител, който има повече от един параметър на шаблона
std::allocator_traits върши своята магия автоматично, когато предоставя контейнер в стил STL с разпределител, който има един параметър на шаблон, но не и когато предоставя контейнер в стил STL с разпределител, който има два параметъра на шаблон, но...
695 изгледи
schedule 27.09.2022

Как да промените порта на работещ Boost::ASIO udp сокет
Библиотеката Boost ASIO предоставя port() get/set метод за сокет local_endpoint , но когато се опитам да превключа към друг порт, докато работната опашка работи, извикването на socket.local_endpoint().port(1234) call не променя порта. Някой има...
145 изгледи
schedule 22.09.2022

Възниква ли раздуване на кода в C++ поради вградени функции?
Имам въпрос за интервю относно C++, възниква ли "раздуване на кода" в C++ поради вградени функции? Знам, че това е вярно за шаблоните, но какво да кажем за вградените функции? ако да, защо. Благодаря.
159 изгледи
schedule 02.10.2022

constexpr конструктор и функции
Имам този клас encrypted_string, който трябва да шифрова низове по време на компилация. Проблемът, който имам, е, че не мога да извикам членската функция „encrypt“ в конструктора, но ако поставя криптирането в самия конструктор, то работи....
3897 изгледи
schedule 07.10.2022

Ще работи ли автоматичното приспадане на тип връщане за основния?
Ще мога ли да направя следното за основната функция в C++1y (C++14): auto main() { // ... } Така че върнатият тип автоматично ще бъде int , въпреки че не е необходимо да използваме изрично return 0; ?
903 изгледи
schedule 08.11.2022

Каква е разликата между оператора запетая и разделителя запетая?
В C++ токенът със запетая (т.е. , ) се интерпретира или като оператор със запетая , или като разделител със запетая . Въпреки това, докато търсих в мрежата, осъзнах, че не е съвсем ясно в кои случаи токенът , се интерпретира като двоичен...
858 изгледи
schedule 01.12.2022

c++11 променливо програмиране, как да дефинираме кула от вектори
Как (ако е възможно) мога да използвам c++11 променливо програмиране, за да дефинирам поредица от vector в тяло на функция (или с други думи, поредица от N -измерни масиви с намаляващи N до 0), като променливите по-долу?...
1393 изгледи
schedule 15.12.2023

Превключване напред и назад между масив от структури (AoS) и структура от масиви (SoA)
Една характеристика, която играе важна роля в много от писанията за дизайн, ориентиран към данни, е, че има много случаи, когато вместо AoS (масив от структури): struct C_AoS { int foo; double bar; }; std::vector<C_AoS> cs; ......
1219 изгледи
schedule 27.11.2023

Създаване на неинициализиран масив от елементи, които имат конструктори по подразбиране?
Даден е клас Foo , който има някакъв конструктор по подразбиране, инициализиращ стойността: class Foo { private: uint32_t x; public: constexpr Foo() : x { 3 } {} // ... and some other constructors }; Трябва да...
1059 изгледи

init-capture за препратка към rvalue във Visual Studio 2013
Искам да използвам .net System.Threading.Tasks.Task.ContinueWith в C++, така че пиша следната функция.. #include <iostream> #include <functional> #include <future> template <typename Func, typename Ret> auto...
979 изгледи
schedule 30.01.2024

Грешка при свързване с променливи шаблони
Разгледайте кода по-долу: #include <iostream> template<typename T> T n; int main() { n<int> = 42; std::cout << n<int> << std::endl; } Той компилира и свързва с g++5.1 и показва 42 . Обаче...
175 изгледи

Създавайте OpenGL контекст само с XCB
Искам да създам OpenGL контекст само с XCB без GLX и Xlib. Бихте ли ми казали, че това може да се случи. Благодаря много.
1925 изгледи
schedule 05.01.2024

Кои са добрите начини да се избегне копирането, ако извикващият метод не се нуждае от собственост върху данните?
Ето го проблемът, за който си мислех напоследък. Да кажем, че нашият интерфейс е член-функция, която връща обект, който е скъп за копиране и евтин за преместване (std::string, std::vector и т.н.). Някои реализации могат да изчислят резултата и да...
193 изгледи
schedule 02.12.2022