*/
+
#ifndef DCPOMATIC_EDITABLE_LIST_H
#define DCPOMATIC_EDITABLE_LIST_H
-#include "wx_util.h"
+
#include "dcpomatic_button.h"
-#include <wx/wx.h>
+#include "wx_util.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
#include <wx/listctrl.h>
+#include <wx/wx.h>
+LIBDCP_ENABLE_WARNINGS
#include <vector>
+
class EditableListColumn
{
public:
S* dialog = new S (this);
if (dialog->ShowModal() == wxID_OK) {
- boost::optional<T> const v = dialog->get ();
+ auto const v = dialog->get ();
+ static_assert(std::is_same<typename std::remove_const<decltype(v)>::type, boost::optional<T>>::value, "get() must return boost::optional<T>");
if (v) {
add_to_control (v.get ());
std::vector<T> all = _get ();
S* dialog = new S (this);
dialog->set (all[item]);
if (dialog->ShowModal() == wxID_OK) {
- boost::optional<T> const v = dialog->get ();
+ auto const v = dialog->get ();
+ static_assert(std::is_same<typename std::remove_const<decltype(v)>::type, boost::optional<T>>::value, "get() must return boost::optional<T>");
if (!v) {
return;
}