Here is another set of warnings that I get at installation that would be good to address too:
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'TransitionProb' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<TransitionProb, std::__1::allocator<TransitionProb> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<TransitionProb, std::__1::allocator<TransitionProb> >::__shared_ptr_emplace<double &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:64:65: note: in instantiation of function template specialization 'std::__1::make_shared<TransitionProb, double &>' requested here
std::shared_ptr<Distribution> transitionProb = std::make_shared<TransitionProb>(prob);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'DiscreteGammaDistribution' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<DiscreteGammaDistribution, std::__1::allocator<DiscreteGammaDistribution> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<DiscreteGammaDistribution, std::__1::allocator<DiscreteGammaDistribution> >::__shared_ptr_emplace<double &, double &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:72:56: note: in instantiation of function template specialization 'std::__1::make_shared<DiscreteGammaDistribution, double &, double &>' requested here
std::shared_ptr<Distribution> gamma = std::make_shared<DiscreteGammaDistribution>(scale, shape);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'DiscreteWeibullDistribution' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<DiscreteWeibullDistribution, std::__1::allocator<DiscreteWeibullDistribution> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<DiscreteWeibullDistribution, std::__1::allocator<DiscreteWeibullDistribution> >::__shared_ptr_emplace<double &, double &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:80:58: note: in instantiation of function template specialization 'std::__1::make_shared<DiscreteWeibullDistribution, double &, double &>' requested here
std::shared_ptr<Distribution> weibull = std::make_shared<DiscreteWeibullDistribution>(scale, shape);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'DiscreteExponentialDistribution' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<DiscreteExponentialDistribution, std::__1::allocator<DiscreteExponentialDistribution> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<DiscreteExponentialDistribution, std::__1::allocator<DiscreteExponentialDistribution> >::__shared_ptr_emplace<double &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:87:62: note: in instantiation of function template specialization 'std::__1::make_shared<DiscreteExponentialDistribution, double &>' requested here
std::shared_ptr<Distribution> exponential = std::make_shared<DiscreteExponentialDistribution>(rate);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'ValuesDistribution' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<ValuesDistribution, std::__1::allocator<ValuesDistribution> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<ValuesDistribution, std::__1::allocator<ValuesDistribution> >::__shared_ptr_emplace<std::__1::vector<double, std::__1::allocator<double> > &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:93:57: note: in instantiation of function template specialization 'std::__1::make_shared<ValuesDistribution, std::__1::vector<double, std::__1::allocator<double> > &>' requested here
std::shared_ptr<Distribution> values = std::make_shared<ValuesDistribution>(waitingTime);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'MathExpression' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<MathExpression, std::__1::allocator<MathExpression> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<MathExpression, std::__1::allocator<MathExpression> >::__shared_ptr_emplace<std::__1::basic_string<char> &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:98:65: note: in instantiation of function template specialization 'std::__1::make_shared<MathExpression, std::__1::basic_string<char> &>' requested here
std::shared_ptr<Distribution> mathExpression = std::make_shared<MathExpression>(expression);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:5: warning: destructor called on non-final 'Frequency' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]
__data_.second().~_Tp();
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3573:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<Frequency, std::__1::allocator<Frequency> >::__on_zero_shared' requested here
__shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:4405:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<Frequency, std::__1::allocator<Frequency> >::__shared_ptr_emplace<double &>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
ModelJSON.cpp:103:60: note: in instantiation of function template specialization 'std::__1::make_shared<Frequency, double &>' requested here
std::shared_ptr<Distribution> frequency = std::make_shared<Frequency>(freq);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/memory:3607:23: note: qualify call to silence this warning
__data_.second().~_Tp();
^
Here is another set of warnings that I get at installation that would be good to address too: