клиенту не нужно устанавливать Boost для использования myAnyType
Это, безусловно, делает.Да, вы определяете это как ссылку на any
, чтобы они могли объявить переменную "myAnyType" без определения типа.Но они ничего не могут с этим поделать.Действительно, что-то столь простое, как myAnyType var;
, терпит неудачу, потому что это ссылка.
Они даже не могут вызывать функции, которые принимают myAnyType
в качестве параметра, потому что они не могут объявить объект myAnyType
.Даже const myAnyType
не будет работать, потому что C ++ должен будет создать временный.И он не может создать временный объект из неопределенного типа.
Ваша библиотека не зависит от Boost; полагается на Boost и добавляет Boost в свой интерфейс.myAnyType
является частью Boost, потому что он основан на чем-то, что является частью Boost.Таким образом, ваши клиенты являются клиентами Boost.Чем раньше вы и они это примут, тем лучше.