Я хочу написать функцию log2() для нового типа данных, который я определил самостоятельно. Так это будет выглядеть следующим образомC++/name conflict: как исключить ранее определенную функцию
#include <iostream>
#include <cmath>
Array log2(Array& A)
{
Array C=A;
for (int i=0; i<A.size(); i++)
C[i]=log2(A[i]);
return C;
}
несмотря на другие функции, такие как синус, косинус и т.д., это один (log2) не объявлен под станд имен. так что даже с помощью следующей
std::log2(A[i])
компилятор не решает, что внутри log2 является suppoed быть встроенной функции гр. Я сохраняю одно и то же имя (log2) для простоты кода.
Это сообщение об ошибке,
ошибка: недопустимый инициализация ссылки типа «Массив &» из выражения типа «двойной»
РЕШИТЬ: Он работал, когда я перешел на -std :: C++ 11 .
Не понимаю, как название вопроса и фактический вопрос подходят друг другу. Возникает вопрос, как вы получаете ошибку компилятора/компоновщика. Отправьте это сообщение об ошибке. – IInspectable
вот ошибка:> ошибка: неверная инициализация ссылки типа «TArray &» из выражения типа «double» –
. Если вы включаете '', то он должен находиться в стандартном пространстве имен. –