Константа reference_wrapper

В следующем коде цель состоит в том, чтобы reference_wrapper<int> b так что когда a изменения, b также меняется, однако нельзя допустить обратное, то есть a не должно меняться, когда b изменения. Я попробовал два способа: строки 7 и 8. Строка 7 заставила компилятор жаловаться, что он не может конвертировать из int в const int в то время как строка 8 скомпилирована без проблем, но результат оказался не тем, что я хотел (a изменилось, когда b изменено). Любая идея?

1.  #include <iostream>
2.  #include <functional>
3.  using namespace std;
4.
5.  int main() {
6.      int a = 1;
7.      //reference_wrapper<const int> b = ref(a);
8.      //const reference_wrapper<int> b = ref(a);
9.  return 0;
10. }

1

Решение

Постоянная ссылка может быть получена cref,

#include <iostream>
#include <functional>
using namespace std;

int main() {
int a = 1;
reference_wrapper<const int> b = cref(a);
return 0;
}
4

Другие решения


По вопросам рекламы [email protected]