In this specific case return result; should be equivalent to return {result}; since the return type is std::optional<T> and result is of type T. I can see your point about braces looking a bit odd here: feel free to change :)
Some context behind the "braced return" style more generally: it can help avoid nasty implicit narrowing conversions like in the following example.
$ cat without-list-initialization.cpp
#include <cstdint>
struct F {
F(uint8_t) {}
};
F f() { return 1024; }
$ clang++ -c without-list-initialization.cpp
# No errors
$ echo $?
0
$ cat with-list-initialization.cpp
#include <cstdint>
struct F {
F(uint8_t) {}
};
F f() { return {1024}; }
$ clang++ -c with-list-initialization.cpp
with-list-initialization.cpp:7:18: error: constant expression evaluates to 1024 which cannot be narrowed to type 'uint8_t' (aka 'unsigned char') [-Wc++11-narrowing]
$ echo $?
1
See item (8) and "narrowing conversions" in https://en.cppreference.com/w/cpp/language/list_initialization :)