Не могли бы вы взглянуть на мой комментарий к ответу Алока (чтобы не повторяться) и сообщить мне какие-нибудь идеи?
от вопрос уже есть ответ здесь:
Почему компилятор не допускает std :: string внутри объединения? 5 ответовУ меня есть союз, который выглядит так:
union {
int intValue;
double doubleValue;
std::string stringValue;
void *pointerValue;
} values;
Когда я компилирую это, я получаю это сообщение об ошибке (да, я сделал#include <string>
):
./Value.hh:19:19: error: union member 'stringValue' has a non-trivial copy constructor
std::string stringValue;
^
/Developer/SDKs/MacOSX10.7.sdk//usr/include/c++/4.2.1/bits/basic_string.h:434:7: note: because
type 'std::basic_string<char>' has a user-declared copy constructor
basic_string(const basic_string& __str);
^
Я компилирую это с помощью этой команды:
$ clang++ *.cc -isysroot /Developer/SDKs/MacOSX10.7.sdk/ -shared
Как я могу использоватьstd::string
в союзе?