Ik probeer de to_string(NUMBER)
-functie in mijn Ubuntu-computer voor weken te maken, maar het werkt nooit in de QT-omgeving of ergens anders. Mijn code werkt perfect op mijn Mac OSX, maar wanneer ik het in Ubuntu probeer, klaagt het dat to_string
niet in scope wordt gedeclareerd. Alle oplossingen hiervoor zouden zeer op prijs worden gesteld. Ik heb geprobeerd de GCC-compiler bij te werken, maar het heeft het probleem niet opgelost. Help alstublieft.
Ik gebruik QT Creator 4.8.1 en ik gebruik C++ en de nieuwste versie van Ubuntu.
int Bint::operator*(int temp){
Bint b(to_string(temp));
return ((*this)*b);
}
Ik miste de QMake_cxxflags + = -std = C++ 0x in het PRO-bestand.
Antwoord 1, Autoriteit 100%
Er kunnen verschillende redenen zijn waarom het niet voor u werkt: Misschien moet u de naam in aanmerking komen met std::
, of Misschien heeft u geen C++ 11-ondersteuning.
Dit werkt, op voorwaarde dat u C++ 11 ondersteuning hebt:
#include <string>
int main()
{
std::string s = std::to_string(42);
}
Om C++ 11-ondersteuning met G ++ of Clang in te schakelen, moet u de optie doorgeven -std=c++0x
. U kunt ook -std=c++11
gebruiken op de nieuwere versies van die compilers.
Antwoord 2, Autoriteit 43%
U moet het bestand compileren met C++ 11-ondersteuning
g++ -std=c++0x -o test example.cpp
Antwoord 3, Autoriteit 11%
Ik heb dit probleem opgelost door de eerste regel in Application.mk van
te wijzigen
APP_STL := gnustl_static
Naar
APP_STL := c++_static
Antwoord 4, Autoriteit 4%
U moet enkele wijzigingen aanbrengen in de compiler.
In Dev C++ Compiler:
1. Ga naar Compiler-instellingen / compiler-opties.
2. Klik op het tabblad Algemeen
3. Vink het selectievakje aan (voeg de volgende opdrachten toe bij het bellen van de compiler.
4. Schrijf -std = C++ 11
5. Klik op OK
Antwoord 5, Autoriteit 4%
Deze fout is, zoals hierboven correct geïdentificeerd, is het gevolg van de compiler die C++ 11 of hoger is gebruikt. Dit antwoord is voor Windows 10 .
voor C++ 11 en boven standaardondersteuning in CodeBlocks Versie 17:
-
Klik op Instellingen in de werkbalk.
-
Een vervolgkeuzemenu verschijnt. Selecteer Compiler -optie.
-
Kies Global Compiler-instellingen .
-
Selecteer in de werkbalk in dit nieuwe venster in het tweede deel Compiler-instellingen .
-
Kies vervolgens Compiler Flags -optie in onderstaande werkbalk.
-
Vouw Algemeen tabblad. Controleer de C++ -standaard waaraan u uw compiler wilt volgen.
-
Klik op OK .
voor degenen die proberen C++ 11-ondersteuning in sublieme tekst te krijgen.
-
Download Mingw Compiler versie 7 of hoger. In de versies hieronder is de standaard die wordt gebruikt C++ -standaard C++ 98, terwijl in versies hoger dan 7, de standaard gebruikte standaard C++ 11 is.
-
Kopieer de map in Main C Drive. Het zou niet in elke andere map in C-drive zijn.
-
Hernoem de map als Mingw . Deze naam is Case Ongevoelig, dus het moet elke variatie van MingW en mogen geen andere tekens in de naam opnemen.
-
Ga vervolgens naar Milieuvariabelen en bewerk de padvariabele. Voeg dit toe “c: \ mingw \ bin ” en klik op OK.
-
U kunt de versie van G ++ in CMD controleren door
g++ -v
te typen. -
Dit moet voldoende zijn om C++ 11 in sublieme tekst in te schakelen.
Als u ingangen en uitgangen ook van invoerbestanden voor competitieve programmeerdoeleinden wilt ondernemen, volgt u deze Link .
Antwoord 6
//Try this if you can't use -std=c++11:-
int number=55;
char tempStr[32] = {0};
sprintf(tempStr, "%d", number);