Вопросы по теме 'c++14'
Лямбда-функция с количеством аргументов, определяемым во время компиляции
Я хотел бы объявить лямбда-функцию ровно с N параметрами, где N — аргумент шаблона. Что-то типа...
template <int N>
class A {
std::function<void (double, ..., double)> func;
// exactly n inputs
};
Я не...
1209 просмотров
schedule
02.01.2024
Есть ли способ проверить, указывает ли std::function на член действительного объекта?
Позвольте мне продемонстрировать, что я имею в виду.
#include <functional>
#include <iostream>
class MyClass
{
private:
int number;
public:
MyClass()
{
number = 0;
}
void printNumber()
{...
1194 просмотров
schedule
26.01.2024
Всегда ли безопасно использовать автоматическое определение возврата типа функции C ++ 14 вместо std :: common_type?
Я обновляю часть своей кодовой базы с C ++ 11 до C ++ 14. У меня есть несколько математических служебных функций, которые принимают несколько входных аргументов и возвращают одно значение типа std::common_type_t<...> .
Думаю заменить явное...
379 просмотров
schedule
12.02.2024
Как правильно усовершенствовать геттерные функции?
Я создаю библиотеку JSON для С++ 14 и стараюсь по возможности использовать семантику перемещения.
В моем классе Value есть несколько сеттеров и геттеров, которые всегда пытаются перемещаться, когда это возможно:
template<class T> void...
950 просмотров
schedule
16.10.2023
Почему шаблоны позволяют использовать функции constexpr с конструкторами, отличными от constexpr?
Использование C ++ 14. Почему это будет компилироваться:
template<unsigned N>
constexpr bool foo()
{
std::array<char, N> arr;
return true;
}
а не это?
constexpr bool foo()
{
std::array<char, 10> arr; //...
638 просмотров
schedule
12.06.2024
рекурсивная структура с использованием std::deque и других контейнеров
Я начинаю определять узел дерева. Это неполный тип ( struct / class ) на момент определения поля «дети». Или другой способ - использовать стирание шрифта, но, на мой взгляд, это некрасиво. Еще один способ - использовать указатели, но это все еще не...
51 просмотров
schedule
07.07.2022
Униформа и инициализация значения
Я пытаюсь использовать инициализацию значения для членов с инициализацией значения для конструкторов (я не знаю, действительно ли я использую хорошие термины...)
Итак... Когда я определяю:
struct A
{
int a_;
};
Я могу использовать:
A...
165 просмотров
schedule
30.08.2022
Не определено, если constexpr?
Этот маленький фрагмент кода сводит меня с ума:
struct my_struct
{
private:
static constexpr const char* some_string() noexcept;
public:
my_struct() = default;
private:
std::string _my_string{some_string()};
}
//in cpp
constexpr const...
53 просмотров
schedule
24.05.2024
Конструктор и конструктор-копия для класса, содержащего объединение с нетривиальными членами
Я пытаюсь реализовать собственный вариантный тип, который использует объединение для хранения данных различных типов. В поле type_id я планирую сохранить, какого типа данные, хранящиеся в объединении. Союз содержит нетривиальные члены. Вот моя...
5067 просмотров
schedule
12.10.2023
C++ Преобразование пакета параметров типов в пакет параметров индексов
Есть ли способ преобразовать пакет параметров типов в пакет параметров целых чисел от 0 до sizeof...(Types) ? В частности, я пытаюсь сделать что-то вот это:
template <size_t... I>
void bar();
template <typename... Types>
void...
861 просмотров
schedule
10.09.2022
Является ли вызов std::min в пустом списке инициализаторов (и явное указание типа) неопределенным поведением?
Вызов std::min() с пустым списком инициализаторов обычно не компилируется (все вопросы можно сформулировать так же и для std::max() ). Этот код:
#include <iostream>
#include <algorithm>
int main() {
std::cout <<...
1128 просмотров
schedule
25.04.2024
Почему std::algorithms не constexpr, а что может быть?
Почему нет std::algorithm методов constexpr ? Если я правильно понимаю новые правила C++14, многие из этих методов могут быть constexpr . Например, почему std::find не может быть constexpr ?
static constexpr std::array<char, 4>...
3763 просмотров
schedule
06.06.2024
Ошибка привязки make_unique
У меня проблемы с использованием std::bind с std::make_unique .
У меня есть объект, конструктору которого я передаю фабричные функции для создания std::unique_ptr объектов другого типа класса.
Используя VS2013, это работает:
Tester...
586 просмотров
schedule
16.11.2022
Почему шаблон с выведенным типом возвращаемого значения нельзя перегружать другими его версиями?
Почему следующие два шаблона несовместимы и не могут быть перегружены?
#include <vector>
template<typename T>
auto f(T t) { return t.size(); }
template<typename T>
auto f(T t) { return t.foobar(); }
int main() {...
514 просмотров
schedule
14.03.2024
Как этот код может быть constexpr? (std :: chrono)
В стандарте P0092R1 Говард Хиннант написал:
template <class To, class Rep, class Period,
class = enable_if_t<detail::is_duration<To>{}>>
constexpr
To floor(const duration<Rep, Period>& d)
{
To t =...
1174 просмотров
schedule
25.10.2023
Как правильно найти Heisenbug?
После некоторой модификации ресурса (изображения) моя программа получает случайный сбой (0xC0000005). Я знаю, что это происходит из-за плохого управления памятью, но я не могу найти, откуда это берется, по двум причинам: во-первых, я не использую...
1116 просмотров
schedule
15.07.2022
Перегруженный оператор вывода не найден для выражения Boost.Spirit
Это продолжение этих вопросов и ответов . Теперь у меня есть несколько структур данных в namespace ast , разделенных на два подпространства имен ( algebraic и numeric ), которые соответствуют двум различным форматам, распознаваемым грамматикой....
290 просмотров
schedule
15.01.2024
C++ возвращает несколько значений со структурой
Я знаю, что std::tuple – это допустимый способ вернуть несколько переменных разных типов из функции, как указано в выступление Херба Саттера примерно в 1:31:00 (Этот пример кода мой, а не из видео)
auto get_tuple()
{
return...
345 просмотров
schedule
14.07.2022
Как правильно исправить неоднозначность разрешения шаблона?
Предположим, я написал:
template <typename T, typename = std::enable_if_t<std::is_integral<T>::value>>
void foo() { std::cout << "T is integral." << std::endl; }
template <typename T>
void foo() { std::cout...
1412 просмотров
schedule
09.09.2022
Инициализировать std::array пакетом параметров из произвольного индекса
Инициализация std::array вариативными аргументами шаблона, начиная с заданного индекса, может быть выполнена следующим образом:
#include <array>
template <typename T, size_t N>
struct A
{
template <typename ... Ts>...
2877 просмотров
schedule
01.03.2024