Свързани въпроси '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 изгледи
schedule
17.09.2022
Трябва ли неулавяните общи ламбда да се разпадат до функционални указатели?
Разгледайте следния код:
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 изгледи
schedule
16.09.2022
Постепенно изграждане на вектор от указатели на променливи по време на компилиране
Опитвам се да разреша проблем, при който имам няколко декларации на разпръснати променливи (в една единица за компилиране) и искам да изградя вектор от техните адреси по време на компилация (ако не е възможно като пространствено ефективен вектор,...
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 изгледи
schedule
15.01.2024
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 изгледи
schedule
04.12.2022
Създавайте OpenGL контекст само с XCB
Искам да създам OpenGL контекст само с XCB без GLX и Xlib. Бихте ли ми казали, че това може да се случи. Благодаря много.
1925 изгледи
schedule
05.01.2024
Кои са добрите начини да се избегне копирането, ако извикващият метод не се нуждае от собственост върху данните?
Ето го проблемът, за който си мислех напоследък. Да кажем, че нашият интерфейс е член-функция, която връща обект, който е скъп за копиране и евтин за преместване (std::string, std::vector и т.н.). Някои реализации могат да изчислят резултата и да...
193 изгледи
schedule
02.12.2022