Unë jam i ri në programim, kështu që kërkoj falje nëse kjo është një pyetje e qartë, megjithatë kam probleme me sintaksën e paraqitur në një libër (Parimet e programimit dhe praktika duke përdorur C++ 2nd Edition nga krijuesi i C++, Bjarne Stroustrup). Në të, paraqitet si më poshtë për krijimin e një vektori të vargjeve:
vector<string> philosopher
={"Kant","Plato","Hume","Kierkegaard"};
Megjithatë, kur e kalon këtë përmes g++ nuk i pëlqen. Kodi im është si më poshtë:
#include "std_lib_facilities.h" //The author's library for his examples
int main()
{
vector<string>philosopher
={"Kant","Plato","Hume","Kierkegaard"};
}
Po marr një gabim gjatë përpilimit:
g++ vecttest.cpp -std=c++11
In file included from /usr/local/include/c++/4.9.0/ext/hash_map:60:0,
from /usr/include/std_lib_facilities.h:34,
from vecttest.cpp:1:
/usr/local/include/c++/4.9.0/backward/backward_warning.h:32:2: warning: #warning
This file includes at least one deprecated or antiquated header which may
be removed without further notice at a future date. Please use a
non-deprecated interface with equivalent functionality instead. For a listing
of replacement headers and interfaces, consult the file backward_warning.h.
To disable this warning use -Wno-deprecated. [-Wcpp]
#warning \
^
In file included from /usr/local/include/c++/4.9.0/locale:41:0,
from /usr/local/include/c++/4.9.0/iomanip:43,
from /usr/include/std_lib_facilities.h:212,
from vecttest.cpp:1:
/usr/local/include/c++/4.9.0/bits/locale_facets_nonio.h:1869:5: error:
template-id ‘do_get<>’ for
‘String std::messages<char>::do_get(std::messages_base::catalog, int, int,
const String&) const’ does not match any template declaration
messages<char>::do_get(catalog, int, int, const string&) const;
^
/usr/local/include/c++/4.9.0/bits/locale_facets_nonio.h:1869:62: note:
saw 1 ‘template<>’, need 2 for specializing a member function template
messages<char>::do_get(catalog, int, int, const string&) const;
^
vecttest.cpp: In function ‘int main()’:
vecttest.cpp:8:42: error: could not convert ‘{"Kant", "Plato",
"Hume","Kierkegaard"}’from ‘<brace-enclosed initializer list>’ to ‘Vector<String>’
={"Kant","Plato","Hume","Kierkegaard"};
Mendova se ndoshta versioni im i GCC ishte më i vjetër (i cili ishte në 4.7) kështu që e përditësova në 4.9:
g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.9.0/configure
Thread model: posix
gcc version 4.9.0 (GCC)
Ndonjë ide se ku po gaboj?
Ju falënderoj shumë për ndihmën tuaj.
#define string String
në atë kokë që shkaktoi gabimin e përpilimit<iomanip>
. Kohë argëtuese... 01.07.2014