Use helper method in remaining compiler classes.
diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py
index 8680cf0..954040e 100644
--- a/mesonbuild/compilers/cuda.py
+++ b/mesonbuild/compilers/cuda.py
@@ -13,7 +13,7 @@
 from .. import mlog
 from ..mesonlib import (
     EnvironmentException, Popen_safe,
-    is_windows, LibType, OptionKey, version_compare,
+    is_windows, LibType, version_compare,
 )
 from .compilers import Compiler
 
@@ -645,12 +645,12 @@
         return self.update_options(
             super().get_options(),
             self.create_option(options.UserComboOption,
-                               OptionKey('std', machine=self.for_machine, lang=self.language),
+                               self.form_langopt_key('std'),
                                'C++ language standard to use with CUDA',
                                cpp_stds,
                                'none'),
             self.create_option(options.UserStringOption,
-                               OptionKey('ccbindir', machine=self.for_machine, lang=self.language),
+                               self.form_langopt_key('ccbindir'),
                                'CUDA non-default toolchain directory to use (-ccbin)',
                                ''),
         )
@@ -663,7 +663,7 @@
         # We must strip the -std option from the host compiler option set, as NVCC has
         # its own -std flag that may not agree with the host compiler's.
         host_options = {key: options.get(key, opt) for key, opt in self.host_compiler.get_options().items()}
-        std_key = OptionKey('std', machine=self.for_machine, lang=self.host_compiler.language)
+        std_key = self.form_langopt_key('std')
         overrides = {std_key: 'none'}
         return coredata.OptionsView(host_options, overrides=overrides)
 
@@ -673,7 +673,7 @@
         # the combination of CUDA version and MSVC version; the --std= is thus ignored
         # and attempting to use it will result in a warning: https://stackoverflow.com/a/51272091/741027
         if not is_windows():
-            key = OptionKey('std', machine=self.for_machine, lang=self.language)
+            key = self.form_langopt_key('std')
             std = options[key]
             if std.value != 'none':
                 args.append('--std=' + std.value)
@@ -793,7 +793,7 @@
         return self._to_host_flags(super().get_dependency_link_args(dep), _Phase.LINKER)
 
     def get_ccbin_args(self, options: 'KeyedOptionDictType') -> T.List[str]:
-        key = OptionKey('ccbindir', machine=self.for_machine, lang=self.language)
+        key = self.form_langopt_key('ccbindir')
         ccbindir = options[key].value
         if isinstance(ccbindir, str) and ccbindir != '':
             return [self._shield_nvcc_list_arg('-ccbin='+ccbindir, False)]
diff --git a/mesonbuild/compilers/cython.py b/mesonbuild/compilers/cython.py
index 61e339b..76e66c0 100644
--- a/mesonbuild/compilers/cython.py
+++ b/mesonbuild/compilers/cython.py
@@ -7,7 +7,7 @@
 import typing as T
 
 from .. import options
-from ..mesonlib import EnvironmentException, OptionKey, version_compare
+from ..mesonlib import EnvironmentException, version_compare
 from .compilers import Compiler
 
 if T.TYPE_CHECKING:
@@ -70,12 +70,12 @@
         return self.update_options(
             super().get_options(),
             self.create_option(options.UserComboOption,
-                               OptionKey('version', machine=self.for_machine, lang=self.language),
+                               self.form_langopt_key('version'),
                                'Python version to target',
                                ['2', '3'],
                                '3'),
             self.create_option(options.UserComboOption,
-                               OptionKey('language', machine=self.for_machine, lang=self.language),
+                               self.form_langopt_key('language'),
                                'Output C or C++ files',
                                ['c', 'cpp'],
                                'c'),
@@ -83,9 +83,11 @@
 
     def get_option_compile_args(self, options: 'KeyedOptionDictType') -> T.List[str]:
         args: T.List[str] = []
-        key = options[OptionKey('version', machine=self.for_machine, lang=self.language)]
-        args.append(f'-{key.value}')
-        lang = options[OptionKey('language', machine=self.for_machine, lang=self.language)]
+        key = self.form_langopt_key('version')
+        version = options[key]
+        args.append(f'-{version.value}')
+        key = self.form_langopt_key('language')
+        lang = options[key]
         if lang.value == 'cpp':
             args.append('--cplus')
         return args