#include <iostream>
using namespace std;

struct some_type {};

template<typename T>
void doSomething(T&& model)
{
	cout << "reference: " << &model << endl;
}

void test(some_type input_model, bool do_copy)
{
	cout << "original: " << &input_model << endl;
	if (do_copy)
		doSomething( some_type{input_model} ); // T = some_type&&
	else
		doSomething( input_model ); // T = some_type&
}

int main()
{
	test({}, true);
	test({}, false);
	return 0;
}