wchar_t einzelne Bytes ansprechen
-
Andromeda schrieb:
wc>>8, würde ick mal vorschlagen.
Ach, stimmt, wir sprechen über Bits, nicht Bytes
Aber das hat das Problem nicht gelöst, bzw. komme immer noch nicht ans 'a' ran.Aber ich glaube, das liegt an der Warnung, die ich bekomm...
warning: extraneous characters in character constant ignored wchar_t wc = L'ab'; ^
-
Mit anderen Worten: das b ist weg. Und das ist ja auch kein Wunder ' ' ist für EIN Zeichen - das L ändert da nichts dran.
-
Wenn ich das 'L' weglasse klappt es wunderbar. Aber mit Warnung.
-
Ick glaube auch nicht, dass du auf diese weise 2 chars in ein wchar_t quetschen kannst. was hast du überhaupt vor?
-
Andromeda schrieb:
was hast du überhaupt vor?
meta_string<'my', ' ', 'awe', 'some', ' ', 'str', 'ing'>::str
-
accesspoint schrieb:
Andromeda schrieb:
was hast du überhaupt vor?
meta_string<'my', ' ', 'awe', 'some', ' ', 'str', 'ing'>::str
Ein Template das Strings zusammenklebt, wenn ich das richtig sehe?
Das gibt es doch bestimmt schon.
-
Andromeda schrieb:
Das gibt es doch bestimmt schon.
In Boost.Mpl gibts das soweit ich weiß.
Aber ich hab halt Spaß daran ein eigenes meta_string<> zu bauen.
-
accesspoint schrieb:
Andromeda schrieb:
Das gibt es doch bestimmt schon.
In Boost.Mpl gibts das soweit ich weiß.
Aber ich hab halt Spaß daran ein eigenes meta_string<> zu bauen.Dann viel Spaß noch. Ick bin eher so der C-Coder und habe leider keine Ahnung von C++ Templates.
-
Und weshalb willst du das genau haben?
-
Techel schrieb:
Und weshalb willst du das genau haben?
Damit ich mir einen runterholen kann.
-
du könntest schreiben char *p = (char*) &wc und dann kannst du mit *p oder p[0] auf das letzte und mit *(p+1) oder p[1] auf das erste byte zugreifen.
-
accesspoint schrieb:
Techel schrieb:
Und weshalb willst du das genau haben?
Damit ich mir einen runterholen kann.
wer dumm fragt...
-
Meinst du? Ich finde die Frage schon berechtigt, schließlich händelst du da mit höchst compilerspezifischen Sachen herum. Heißt: wchar_t-Literale mit mehreren Zeichen wie bei char gibt's nicht.
-
Ansonsten kannst du für dein Vorhaben strings in templates zu bekommen dir auch mal das anschauen:
(nur im globalen scope deklarierbar) https://github.com/5cript/mplex/blob/master/string/string.hpp#L108
(Copy Paste geht nicht, weil das krams aus meiner lib benutzt, die nur dazu da war mir metaprogrammierung beizubringen, sollte sich aber austauschen lassen mit standardmitteln)#include "string/string.hpp" MAKE_STRING(Bla, "String content as literal"); int main() { mplex::print_single <Bla>(std::cout); // prints type to cout. // -> mplex::string <(char)83, (char)116, (char)114, ...> }
oder überall:
https://github.com/5cript/mplex/blob/master/string/inline_string.hpp#include "string/inline_string.hpp" int main() { mplex::print_single <SHORT_STRING("Hello World!")>(std::cout); // -> mplex::string <(char)72, (char)101, ...> }
-
Techel schrieb:
Meinst du? Ich finde die Frage schon berechtigt, schließlich händelst du da mit höchst compilerspezifischen Sachen herum. Heißt: wchar_t-Literale mit mehreren Zeichen wie bei char gibt's nicht.
und weiter?
wenn ich hier ne frage stelle wie was geht, ist das letzte was ich hören will: "wieso was hast du denn vor?" total dumm, unnötig und absolut unproduktiv. Ich finde er hat die absolut passende antwort gegeben
-
also wenn man andere leute dafür bezahlt, dass diese einem das denken und lernen abnehmen, könnte man sich so etwas heraus nehmen, ansonsten ist so etwas unpraktisch.
-
looooooool schrieb:
accesspoint schrieb:
Techel schrieb:
Und weshalb willst du das genau haben?
Damit ich mir einen runterholen kann.
wer dumm fragt...
rofl
-
looooooool schrieb:
wenn ich hier ne frage stelle wie was geht, ist das letzte was ich hören will: "wieso was hast du denn vor?"
Diese Meinung teile ich. Mindestens gehört aber eine ordentliche Antwort auf die Frage dazu, just my 2 cts.