Разные результаты одинаковых функций

144
05 апреля 2019, 17:50

Почему следующая программа выводит 1 0, хотя вроде бы одинаковые проверки?

#include <iostream>
#include <type_traits>

int main() {
    std::cout << std::is_copy_assignable<int>() << std::endl << std::is_assignable<int, int>();
}
Answer 1

std::is_assignable<int, int> проверяет(без выполнения), будет ли корректным выражение

::std::declval<int>() = ::std::declval<int>()
int x{}; int y{}; ::std::move(y) = ::std::move(x); // не работает

Это выражение некорректно, так как слева должно быть l-value

А std::is_copy_assignable<int>() выдает результат аналогичный

::std::is_assignable<int &, int const &>
::std::declval<int &>() = ::std::declval<int const &>()
int const x{}; int y{}; y = x; // работает
READ ALSO
Разница между addressof и &amp;

Разница между addressof и &

В чём разница между std::addressof<>(var) и &var?

143
Почему не считывается файл?

Почему не считывается файл?

Есть файл со следующим содержанием текста:

196
Удаление пустых строк в конце текстового файла Java

Удаление пустых строк в конце текстового файла Java

Нужно было реализовать логику для замены строки в текстовом файлеПрименял разные схемы, но остановился на самом лаконичном, как мне кажется:

126
Метод не может распарсить дату

Метод не может распарсить дату

Вот собственно код дата прилетает формата 05 ноя 18, 20:51 В среде всё работает, но когда я компилирую файл и запускаю его через командную строку,...

146