Просто используйте этот код http://docs.google.com/gview?embedded=true&url="+yourURL
webview = ( WebView ) findViewById( R.id.webview );
String docc = "http://docs.google.com/gview?embedded=true&url="+yourURL;
webview.getSettings().setJavaScriptEnabled( true );
webview.getSettings().setPluginState( WebSettings.PluginState.ON );
webview.loadUrl( docc );
Текущий стандарт C ++ не допускает типы не POD внутри объединений. Вы получите эту ошибку компилятора из gcc
:
error: member ‘std::vector<int, std::allocator<int> >
<anonymous union>::i’ with constructor not allowed in union
error: member ‘std::vector<int, std::allocator<int> >
<anonymous union>::i’ with destructor not allowed in union
Новый стандарт C ++ ( C ++ 0x ) предлагает неограниченные объединения , но он добавляет еще Подробнее ловушки времени жизни объекта для C ++ .
Из стандарта C ++, раздел 9.5:
Объект класса с нетривиальный конструктор (12.1), а нетривиальный конструктор копирования (12.8), нетривиальный деструктор (12.4) или нетривиальный оператор присваивания копии (13.5.3, 12.8) не может быть членом union,
Здесь для «нетривиального» читайте «полезный»: -)
У вас не может быть объединений, содержащих типы классов не POD. Ваш пример не скомпилируется.
Вы можете использовать boost :: variable
в качестве безопасной альтернативы союзам C. См. Документацию на boost.org . Однако вы можете пересмотреть свой дизайн и использовать вместо этого полиморфизм. Конечно, зависит от того, чего вы пытаетесь достичь.
Могут ли конструкторы трех векторов мешать друг другу? (поскольку 3 из них находятся в одном и том же адресе памяти)
Стандарт C ++ не разрешает вашу программу, поэтому он (в лучшем случае!) определяет реализацию, что происходит.
Если, скажем, ваша реализация вызывает все три конструктора по умолчанию, и все они выделяют память и хранят указатель на вновь выделенное пространство, в результате возникает утечка памяти (первые два выделения перезаписываются третьим).
Если все деструкторы вызываются и все они освободив «свою» память, вы будете делать двойное освобождение (тройное, актуально); это может повредить структуру данных распределения, что является плохой вещью. Будьте счастливы, если рухнете, потому что отладить намного сложнее, если вы этого не сделаете.
Возможно, вы захотите взглянуть на Boost.Variant , который может содержать одно значение: разные типы.