Столбец идентификаторов Oracle 12c пропускает часть чисел при вставке в таблицу во время загрузки ETL

Ион Тодирель уже упомянул ответ ДА, используя std::reference_wrapper. Начиная с C ++ 11 у нас есть механизм для извлечения объекта из std::vector и удаления ссылки с помощью std::remove_reference. Ниже приведен пример, скомпилированный с использованием g++ и clang с опцией -std=c++11 и выполнен успешно.

#include <iostream>
#include <vector>
#include<functional>

class MyClass {
public:
    void func() {
        std::cout << "I am func \n";
    }

    MyClass(int y) : x(y) {}

    int getval()
    {
        return x;
    }

private: 
        int x;
};

int main() {
    std::vector<std::reference_wrapper<MyClass>> vec;

    MyClass obj1(2);
    MyClass obj2(3);

    MyClass& obj_ref1 = std::ref(obj1);
    MyClass& obj_ref2 = obj2;

    vec.push_back(obj_ref1);
    vec.push_back(obj_ref2);

    for (auto obj3 : vec)
    {
        std::remove_reference<MyClass&>::type(obj3).func();      
        std::cout << std::remove_reference<MyClass&>::type(obj3).getval() << "\n";
    }             
}
2
задан Mahesh 19 February 2019 в 12:10
поделиться