> В общем случае да, но нет) лол, кек
> Попробуй просто в памяти просто сконкатенировать две строки с нультерминаторами в конце.
сильно зависит от определения строки, ну и от функции реализующую данный оператор конкатенации. И сводится все к тому, что необходимо вычислить (или уже знать) длины двух строк в байтовом представлении (не забываем про мультибайтовость, помимо нультерминированности), сложить их и собственно выделить память такого размера для результирующей строки, в итоге - побайтово скопировать содержимое двух строк.
> Я уже молчу про боле сложные объекты типа структуры или класса.
все же в итоге сведется к занимаемому пространству. Склеить две структуры - создать новую структуру которая будет содержать поля (методы) обеих структур, типа расширения. Все зависит от определения.
> Т.е даже в программировании придется длеать доп действия чтобы оно работало корректно.
Все зависит от определения, смысла который мы вкладываем в понятие конкатенирование.
greet * whom != whom * greet - да антикомутативна, потому-что в результате две разные последовательности символов, НО
aaaa * aaaaaaa == aaaaaaa * aaaa - а это уже комутативно, что за противоречивость?, так нельзя.
кстати второй вариант был бы антикомутативен если записать его в таком виде
aaaa\0 * aaaaaaa\0 == aaaaaaa\0 * aaaa\0
то есть, если результат конкатенации будет в байтовом представлениии таковым
aaaa\0aaaaaaa\0 != aaaaaaa\0aaaa\0
эти две последовательности байт не равны, значить операция в таком случае некомутативна, но так делать нельзя, противоречие нультерминированности :)