Hogy lehet C++-ban az std::string literált használni using namespace nélkül?
#include <string>
#include <iostream>
int main() {
using namespace std::string_literals;
std::string s2 = "abc\0\0def"s;
std::cout << "s2: " << s2.size() << " "" << s2 << ""\n";
}
Az importok után beírod, hogy using namespace std;
Ezzel nem kell sehová kiírni majd az std namespace-t. Ha csak stringnél nem akarsz namespacet tenni, akkor szintén importok után beírod, hogy using std::string;
Ha using namespace nélkül akarod használni, akkor nem írod ki. Helyette a névtérbe lévő bármilyen dolog elé oda kell írni a névtér nevét, majd kétszer a kettőspontot, azaz a hatókör feloldó operátor.
Ha a globális névtérbe helyezed using namespace-el az adott névteret, akkor elhagyható a névtér neve, és a hatókör feloldó operátort.
De ne vidd tulzásba a using-oást. A névterek nem azért vannak, mert a usint-uk jól néz ki a program elején.
1: Manuálisan meghívod:
std::string_literals::operator""s("abc\0\0def", 9);
2: Nem húzod be az egész névtért, csak az s operátort:
using std::string_literals::operator""s;
std::string s2 = "abc\0\0def"s;
3: prog.hu oldalon kérdezel, ahol olyanok válaszolnak akik pénzt is kapnak azért, hogy programoznak, nem csak itt értetlenkednek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!