traduccion onomatopoeia meaning for berserk c++ clang

c++ - onomatopoeia - llvm 4.0 3



Advertencia: el tratamiento de la entrada ''c-header'' como ''c++-header'' cuando está en modo C++, este comportamiento está en desuso (2)

Inspírate de @JoachimPileborg. El significado real de este mensaje de error dice es:

Estás compilando un archivo de cabecera C través de un compilador CXX . DOES NOT significa que CAN NOT compilar los archivos de encabezado . CAN compilar el archivo de encabezado si elige el compilador correcto para los archivos correctos. En palabras simples:

clang with *.h works clang with *.hpp not works clang++ with *.h not works clang++ with *.hpp works

Entonces, para solucionar el problema de la compilación de los archivos de encabezado, por ejemplo, los encabezados de .hpp , simplemente cambie el sufijo de .h a .hpp para .hpp el problema.

¿Qué significa este mensaje de error de Clang ++ y por qué lo estoy recibiendo? Parece que no puedo encontrar nada en internet al respecto ...
clang: warning: treating ''c-header'' input as ''c++-header'' when in C++ mode, this behavior is deprecated

Aquí está mi código,

MergeSort.h :

#ifndef __MERGESORT_H__ #define __MERGESORT_H__ #include <iostream> using namespace std; class MergeSort; class MergeSort { public: MergeSort(); MergeSort(const int* list, int length); ~MergeSort(); friend ostream& operator<< (ostream& os, const MergeSort& ms); private: int* list; int len; }; ostream& operator<< (ostream& os, const MergeSort& ms); #endif

MergeSort.cpp :

#include <iostream> #include "MergeSort.h" using namespace std; MergeSort::MergeSort() { list = new int[1]; list[0] = 0; len = 0; } MergeSort::MergeSort (const int* t, int length) { if (t) { len = length; list = new int[len]; for (int i = 0; i < length; i++) list[i] = t[i]; } else { list = new int[1]; list[0] = 0; len = 0; } } MergeSort::~MergeSort() { delete[] list; } ostream& operator<<(ostream& os, const MergeSort& ms) { for (int i = 0; i < ms.len; i++) os << ms.list[i]; return os; } int main() { int list[] = {1,2,3,4}; int list_len = sizeof(list)/sizeof(int); MergeSort ms = MergeSort(list, list_len); cout << ms << endl; cout << "hello world" << endl; }

Y la salida:

[gyeh@gyeh mergesort]$ clang++ -c -g -Wall MergeSort.cpp MergeSort.h clang: warning: treating ''c-header'' input as ''c++-header'' when in C++ mode, this behavior is deprecated [gyeh@gyeh mergesort]$ clang++ MergeSort.o -o MergeSort [gyeh@gyeh mergesort]$ valgrind --leak-check=yes ./MergeSort ==25774== Memcheck, a memory error detector ==25774== Copyright (C) 2002-2013, and GNU GPL''d, by Julian Seward et al. ==25774== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info ==25774== Command: ./MergeSort ==25774== 1234 hello world ==25774== ==25774== HEAP SUMMARY: ==25774== in use at exit: 0 bytes in 0 blocks ==25774== total heap usage: 1 allocs, 1 frees, 16 bytes allocated ==25774== ==25774== All heap blocks were freed -- no leaks are possible ==25774== ==25774== For counts of detected and suppressed errors, rerun with: -v ==25774== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)


No debe compilar los archivos de encabezado , solo los archivos de origen.