Перемещение функции-члена из базового класса в производный класс нарушает работу программы без видимых причин

этот (придуманный) вопрос изначально был сформулирован как головоломка, скрывающая некоторые детали, которые могут помочь увидеть проблему быстрее. Прокрутить вниз для более простой версии MCVE. оригинал (а-ля головоломка) версия у меня е ...

Почему мы не можем автоматически выводить типы возврата?

недавно я работал с другом, который хотел сделать C++ более Haskell-y, и мы хотели функцию, которая в основном выглядит так: auto sum(auto a, auto b) { return a + b; } видимо, я не могу использовать auto в качестве типа параметра, поэтому я из ...

GCC стоит использовать в Windows для замены MSVC?

в настоящее время я разрабатываю в C++ на Windows, используя Visual Studio 2010. После официального анонса C++11, я начал использовать некоторые из его функций, которые уже доступны в MSVC. Но, как и ожидалось, подавляющее большинство новых изменений ...

В f (x) можно ли вычислить x до f?

у меня есть программа на языке C++. Эта программа делает что-то вроде этого: struct MyT {void memfunc(std::unique_ptr<MyT> arg);}; std::unique_ptr<MyT> obj = /* some init */; obj->memfunc(std::move(obj)); это гарантированно будет де ...

Значения элементов по умолчанию рекомендуется использовать

рекомендуется ли при написании кода C++11 устанавливать значения по умолчанию для членов класса в заголовочном файле класса? или лучше сделать это в конструкторе класса? EDIT: Я имею в виду: фу.h: #include <string> using std::string; cl ...

Это c++11 regex ошибка меня или компилятора?

хорошо, это не оригинальная программа, в которой у меня была эта проблема, но я дублировал ее в гораздо меньшей. Очень простая задача. главная.cpp: #include <iostream> #include <regex> using namespace std; int main() { regex r1("S" ...

Позволяет ли C++11 вектор?

требования к контейнерам изменились с C++03 на C++11. В то время как C++03 имел общие требования (например, конструктивность копирования и назначаемость для вектора), C++11 определяет мелкозернистые требования для каждой операции контейнера (раздел 2 ...

Что означает 'пустота ()" в " авто F(параметры) -> decltype(..., пустота())' делать?

я нашел код здесь это выглядело примерно так: auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. } во всей документации, которую я читал, мне сказали, что decltype подписан как: decltype( entity ) или decltype( expressi ...

Что происходит, когда исключение не обрабатывается в многопоточной программе C++11?

Если у меня есть программа C++11, работающая с двумя потоками, и один из них выдает необработанное исключение, что происходит? Неужели вся программа умрет огненной смертью? Будет ли поток, в котором выбрасывается исключение, умирать в одиночку (и есл ...

Действительно ли новый символ гарантирует выровненную память для типа класса?

выделяет буфер через new char[sizeof(T)] гарантированно выделить память, которая правильно выровнена для типа T, где все члены T имеет свою естественную, определенную реализацию, выравнивание (то есть вы не использовали alignas ключевое слово для изм ...

Разница между std:: function и стандартным указателем функции? [дубликат]

этот вопрос уже есть ответ здесь: должен ли я использовать std::function или указатель на функцию в C++? 5 ответов в чем разница между std::function и станда ...

Как работает параметр шаблона std:: function? (реализация)

на Бьярн Страуструпсайт (C++11 FAQ): struct X { int foo(int); }; std::function<int(X*, int)> f; f = &X::foo; //pointer to member X x; int v = f(&x, 5); //call X::foo() for x with 5 как это работает? Как это std:: function вызов fo ...

Как преобразовать лямбда в std:: функция с помощью шаблонов

в принципе, то, что я хочу сделать, это взять лямбду с любым количеством параметров любого типа и преобразовать ее в функцию std::. Я пробовал следующее, И ни один из методов не работает. std::function([](){});//Complains that std::function is missi ...

Что я могу и не могу специализироваться в пространстве имен std?

пользователи могут добавлять явные специализации к std пространство имен. Однако, есть несколько шаблонов, которые мне запрещены специальности. какие шаблоны можно и нельзя специализировать? ...

std:: put Time implementation status in GCC?

Я пытался скомпилировать в этом примере программы используете GCC (проверенные версии 4.5.1, 4.6.3, 4.8.4): #include <iostream> #include <iomanip> #include <ctime> #include <chrono> using std::chrono::system_clock; int main ...

Unicode в C++11

я немного читал по теме Unicode-в частности, UTF-8 - (не) поддержка в C++11, и я надеялся, что гуру на Stack Overflow могут убедить меня, что мое понимание правильно, или указать, где я неправильно понял или пропустил что-то, если это так. краткий о ...

Странное выражение "- > * [] " в исходном коде cpp на C++.библиотека реагировать

вот фрагмент кода C++, который я нашел в документации cpp.библиотека реакций: auto in = D::MakeVar(0); auto op1 = in ->* [] (int in) { int result = in /* Costly operation #1 */; return result; }; Я никогда не видел ->* [] нотации. Во ...

Лямбда-выражения как параметры шаблона класса

можно ли использовать лямбда-выражения как параметры шаблона класса? (Обратите внимание, что это совсем другой вопрос, чем этот, который спрашивает, Может ли само лямбда-выражение быть шаблонизировано.) Я прошу, если вы можете сделать что-то вроде: ...

Почему нет признака типа std:: is struct?

Я видел, что для того, чтобы проверить, если тип T это класс, который я могу использовать: bool isClass = std::is_class<T>::value; возвращает true для обоих классов и структур. Я знаю, что в C++ они почти одно и то же, но я хотел бы знать, п ...

Int8 t и uint8 t предназначены для типов char?

учитывая эту программу C++11, должен ли я ожидать увидеть число или букву? Или не надеждами? #include <cstdint> #include <iostream> int main() { int8_t i = 65; std::cout << i; } указывает ли стандарт, может ли этот тип ...