У меня есть класс, содержащий указатель
template<Foo> class Class{
Foo * ptr;
public:
//constructors, assignment
Foo* view(){return ptr;}
}
и функция, принимающая Foo*
в качестве аргумента
double fn(Foo*){ /*Implementation*/ }
Выполняет ли реализация
Class C;
fn(C.view());
привести к тому, что член класса ptr
будет скопирован?
Да, указатель передается по значению, т.е. Копируется. Возможно, дважды, в зависимости от оптимизации. То, на что указывает, не копируется.