В следующем коде цель состоит в том, чтобы 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. }
Постоянная ссылка может быть получена cref
,
#include <iostream>
#include <functional>
using namespace std;
int main() {
int a = 1;
reference_wrapper<const int> b = cref(a);
return 0;
}