Из Получить таблицу и индекс DDL простым способом :
set heading off;
set echo off;
Set pages 999;
set long 90000;
spool ddl_list.sql
select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
spool off;
Здесь СФИНА не происходит. Все вызовы DoStuff
будут вызывать
template <typename T, typename...>
void DoStuff(T input) {
input.bar();
}
. Причина этого в том, что
template <typename T, typename>
void DoStuff(T input) {
input.foo();
}
требуется два параметра шаблона, в то время как
template <typename T, typename...>
void DoStuff(T input) {
input.bar();
}
работает для 1 или более параметров шаблона (пустые пакеты могут быть пустыми). Поэтому, когда вы звоните
DoStuff(Foo());
// or
DoStuff(Bar());
//or
DoStuff(Both());
, вы можете вывести только один параметр шаблона, и единственным жизнеспособным кандидатом является
template <typename T, typename...>
void DoStuff(T input) {
input.bar();
}
Если вы использовали
DoStuff<Foo, any_other_type>(Foo());
, то вы получите ошибку неоднозначности, так как она соответствует обоим шаблонам.